在 Django 中,当您在模型中定义了一个外键字段,并希望它具有唯一性约束时,您可以使用
UniqueConstraint
来实现。
以下是一个示例模型,其中
book
模型包含了一个外键字段
author
,并定义了一个名为
unique_author_book
的唯一性约束,确保每个作者只能有一本同名书。
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
class Meta:
constraints = [
models.UniqueConstraint(fields=['title', 'author'], name='unique_author_book')
在这个模型中,UniqueConstraint
接受两个参数:fields
和 name
。fields
参数是一个包含需要唯一性约束的字段的列表,这里是 title
和 author
。name
参数是可选的,用于给约束命名。
需要注意的是,在 Django 中,unique_together
属性已经被弃用了,不推荐使用,而是使用 UniqueConstraint
。
希望这些信息对您有帮助!