Как установить ограничения Django, чтобы разрешить один объект enabled (BooleanField) на элемент? [дубликат]

Как установить ограничения Django (или unique_together), чтобы разрешить один включенный объект на элемент?

class Subscription(models.Model):
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    enabled = models.BooleanField(default=False)

Не допускать:

item1 = Item.objects.get(...)
sub1 = Subscription.objects.create(item=item1, enabled=True)
sub2 = Subscription.objects.create(item=item1, enabled=True)

но это должно быть разрешено:

item1 = Item.objects.get(...)
sub1 = Subscription.objects.create(item=item1, enabled=True)
sub2 = Subscription.objects.create(item=item1, enabled=False)
Вернуться на верх