Inter-field validation checks whether several fields on one model make sense together. Ordinary field validation can reject empty values or invalid choices, but dependencies between fields require model-level logic. section 7.2.1
A SeekingAd must identify the right party
In RiffMates, a SeekingAd uses seeking to indicate whether a musician or band is wanted. Its clean() method can require band when seeking is MUSICIAN, and similarly require musician when seeking is BAND; invalid combinations raise ValidationError. Remember the slightly sneaky framework detail: clean() is not called automatically. section 7.2.1
