Цель:
Я хочу убедиться, что есть только один активный owner
на Thing
.
Проблема:
Поскольку наша БД - MySQL, я не могу использовать параметр condition
для Django s UniqueConstraint
. Я ищу надежную масштабируемую альтернативу этому:
class Thing(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
active = models.BooleanField()
class Meta:
constraints = [
UniqueConstraint(
fields=['owner'],
condition=Q(active=True),
name='one_active_owner_per_thing'
)
]
Было бы лучше создать отдельную таблицу для активных Thing
s, переопределить метод сохранения или что-то еще?