我可以在Django UniqueConstraint中使用相关模型的字段吗?

问题描述 投票:0回答:1

是否可以使用外键模型的字段制作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]的字段>

'

是否可以使用外键模型的字段来创建UniqueConstraint?例如,如何约束同一年龄段作者撰写的所有书籍都具有唯一标题? (人为的...

django django-models unique-constraint
1个回答
1
投票

否,UniqueConstraint尚不能那样工作。 See this answer作为可能的选择。

© www.soinside.com 2019 - 2024. All rights reserved.