类型错误:“UniqueConstraint”对象在 Django 中不可迭代

Wha*_*2Hz 3 python django django-models

当我使用以下命令设置多个唯一字段时UniqueConstraint

class Meta:
    constraints = (models.UniqueConstraint(fields=['student', 'classroom', 'code'], name='student_classroom_code'))
Run Code Online (Sandbox Code Playgroud)

并运行python manage.py makemigrations引发此错误:

TypeError: 'UniqueConstraint' object is not iterable
Run Code Online (Sandbox Code Playgroud)

这有什么问题吗?

Mar*_*lář 5

您需要将 iterable 分配给约束。您缺少,in (models.UniqueConstraint(...),),这意味着您正在分配models.UniqueConstraint实例而不是元组。

class Meta:
    constraints = (models.UniqueConstraint(fields=['student', 'classroom', 'code'], name='student_classroom_code'),)
Run Code Online (Sandbox Code Playgroud)