How to set Django constraints (or unique_together
) to allow one enabled object per item?
class Subscription(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
enabled = models.BooleanField(default=False)
Should not allow to:
item1 = Item.objects.get(...)
sub1 = Subscription.objects.create(item=item1, enabled=True)
sub2 = Subscription.objects.create(item=item1, enabled=True)
but this should be allowed:
item1 = Item.objects.get(...)
sub1 = Subscription.objects.create(item=item1, enabled=True)
sub2 = Subscription.objects.create(item=item1, enabled=False)