不那么独特的postgres领域

时间:2014-05-22 12:16:11

标签: python sql django postgresql django-cms

我刚刚用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复选框。

1 个答案:

答案 0 :(得分:0)

这个专栏肯定是独一无二的。这种行为的唯一解释是值相似但不相同。例如,他们可能在尾随空格上有所不同。

您应该检查您的django表格是否经过适当验证。