django UniqueConstraint унаследованные таблицы - PullRequest
1 голос
/ 10 января 2020

У меня есть следующее:

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 способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...