Могу ли я использовать поле связанной модели в Django UniqueConstraint? - PullRequest
0 голосов
/ 19 марта 2020

Можно ли сделать UniqueConstraint, используя поле модели с иностранными ключами?

Например, как я могу заставить все книги, написанные авторами того же возраста, иметь уникальное название? ( Придуманный пример, но вы поняли идею. )

models.py :

class Author(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

class Book(models.Model):
    class Meta:
        contraints = [
            models.UniqueConstraint(
                # THIS DOESN'T WORK
                fields=["author__age", "title"],
                name="my_constraint",
            )
        ]
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, related_name="books")

Это дает следующую ошибку:

django .core.exceptions.FieldDoesNotExist: в книге нет поля с именем 'author__age

'

1 Ответ

1 голос
/ 19 марта 2020

Нет, UniqueConstraint пока не работает. См. Этот ответ для возможных альтернатив.

...