У меня есть следующее:
class Parent(models.Model):
field1 = models.CharField(max_length=20)
field2 = models.CharField(max_length=20)
field3 = models.CharField(max_length=20)
class Meta:
abstract = True
constraints = [ models.UniqueConstraint(fields=("field1", "field2", "field3"), name='unique_stuff'), ]
class Child1(Parent):
pass
class Child2(Parent):
pass
Это будет делать makemigrations
нормально, но затем не сможет migrate
, по крайней мере, в Django 2.2. Вы должны указать имя (Django, похоже, не хочет автоматически его генерировать). Является ли единственный способ добиться этого, чтобы иметь Meta
класс в каждом дочернем классе и иметь отдельно именованное ограничение в каждом? Могу ли я попробовать использовать какое-нибудь имя в зависимости от типа дочернего класса? Каков был бы самый DRY способ сделать это?