For context, here is a menu system.
class Menu(models.Model):
...
class Link(models.Model):
...
class MenuItem(models.Model):
menu = models.ForeignKey(Menu)
submenu = models.ForeignKey(Menu, related_name='submenu', blank=True, null=True)
link = models.ForeignKey(Link, blank=True, null=True)
position = models.IntegerField()
I have two results I'm looking to achieve:
- At least one of Submenu and Link must not be Null (submenu titles can have a link)
- Only one of Submenu and Link must be null (submenu titles cannot have a link)
Any advanced validation is new to me, so a code example would be very helpful.
In this example, data will only be added via Django Admin