I have the following model in Django:
class Bout (models.Model):
fighter_1 = models.ForeignKey(Fighter, related_name="bout_fighter_1")
fighter_2 = models.ForeignKey(Fighter, related_name="bout_fighter_2")
winner = models.ForeignKey(Fighter, related_name="bout_winner",
blank=True, null=True, help_text='Leave blank for draw.')
date = models.DateField()
cancelled = models.BooleanField()
I would like the “idiot-proof” administration for my notes. On the contrary, I want to create three rules:
Fighter 1 is not the same as fighter 2 (which is only suitable for the monty python skeet).
The winner must be in a battle (for example, either Fighter 1 or Fighter 2)
The winner cannot be determined before the match. (After all, this is not WWE.)
All three rules require checking one field for another field in the same record. Is it possible to do this in django, either using native django methods, or resorting to using python?