我刚刚用Django创建了一个DB表(Postgresql),其中一个字段应该只接受唯一的条目。这里的问题是我可以输入两次相同的东西,它不会真正抛出异常或任何东西。另外,如果我查看数据库中的条目是相同的。
我的模型(我使用的是Django-CMS,但我不认为这是一个很大的区别):
class Newsletter(CMSPlugin):
salutation = models.CharField(max_length=100, verbose_name="Anrede")
firstname = models.CharField(max_length=100, verbose_name="Vorname")
lastname = models.CharField(max_length=100, verbose_name="Nachname")
email = models.EmailField(max_length=100, unique=True, verbose_name="E-Mail")
当我通过右键单击该字段在Valentia studio中生成一个create命令时,我得到以下SQL:
ALTER TABLE "public"."boxclub-basel_newsletter" ADD COLUMN "email" CHARACTER VARYING( 100 ) NOT NULL UNIQUE;
现在我到底做错了什么?我的意思是在Django和SQL中都有UNIQUE
命令,如果我只点击Valentia中的字段,也会选中Unique复选框。
答案 0 :(得分:0)
这个专栏肯定是独一无二的。这种行为的唯一解释是值相似但不相同。例如,他们可能在尾随空格上有所不同。
您应该检查您的django表格是否经过适当验证。