在我的Django项目中,在其中一个模型中,我需要使用两个UniqueConstraint实例。但是,当我添加它并在运行makemigrations之后进行迁移时,会在终端中显示错误。
模型类:
class MyDays(models.Model):
class Meta:
verbose_name = "My Day"
verbose_name_plural = "My Days"
constraints = [
models.UniqueConstraint(fields=['userid', 'date', 'from'], condition=Q(status=1), name='user_date_from_a'),
models.UniqueConstraint(fields=['userid', 'date', 'to'], condition=Q(status=1), name='user_date_to_b')
]
id = models.BigAutoField(primary_key=True)
userid = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="User")
date = models.DateField(auto_now_add=False, editable=True, validators=[validate_date])
from = models.TimeField(auto_now_add=False, editable=True)
to = models.TimeField(auto_now_add=False, editable=True)
status = models.ForeignKey(Status, on_delete=models.CASCADE, verbose_name="Status", default=1)
当我运行python3 manage.py migration时,它出现以下错误:
django.core.exceptions.FieldError:联接的字段引用不是 此查询允许
仅当状态为1以及其他3个字段组合时,我才需要具有唯一记录。我究竟做错了什么?如何解决此错误?