簡體   English   中英

TypeError: 'UniqueConstraint' object 在 Django 中不可迭代

[英]TypeError: 'UniqueConstraint' object is not iterable in Django

當我使用UniqueConstraint設置多個唯一字段時:

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

並運行python manage.py makemigrations此錯誤:

TypeError: 'UniqueConstraint' object is not iterable

這有什么問題?

您需要將可迭代分配給約束。 您缺少, in (models.UniqueConstraint(...),) ,這意味着您正在分配models.UniqueConstraint實例而不是元組。

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

該錯誤僅意味着它不可迭代。 嘗試像這樣定義它

例如

class Meta:
    constraints = [models.UniqueConstraint(fields['app_uuid', 'version_code'], name='unique appversion')]

Python 元組在關閉,至少需要一個。 如果你不指定這個, ,解釋器把它當作一個組,類型將是括號內的 var

例子:

t = ('i am a tuple',)         # this is good
t = ('i am not a tuple')      # this is bad

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM