[英]Django ORM unique_together not working
我正在使用django 1.6和postgressql。 我正在嘗試設置由名稱和地址字段組成的復合唯一鍵。 我的模特:
class MU2(models.Model):
name = models.CharField(max_length=200,default="",unique=True)
addresses = models.CharField(max_length=200,default="")
......
class Meta:
unique_together = ("name", "addresses")
在我看來:
for practice in practices:
p =MU2(**practice)
try:
p.save()
except ValidationError:
pass
復合鍵不起作用,我在名稱和地址字段上都得到了重復的記錄。
我究竟做錯了什么?
您至少“做錯了”三件事:
您的class Meta
語句縮進嚴重-它應與字段聲明處於同一級別
unique_together
期望一個元組的元組,而不是單個元組
如果出現問題,您的“ pass” except子句會阻止您獲取任何有用的調試信息。 並不是說它可以解決您當前的問題,但這仍然是錯誤的...
另外,地址不是2600個字符長的“廚房水槽”位存儲桶(它通常是具有兩個或三個地址行,郵政編碼,城市名稱等的結構化數據類型-在關系模型中,它應該/應該是表格它本身),並且很少有SQL數據庫會處理2600個字符長的varchar
字段,因此,我們不要談論將其用作復合索引的一部分...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.