首页 > 解决方案 > 为什么在使用 create() 时不强制执行 unique=True?

问题描述

我有一个具有独特字符域的模型:

class EmailTemplate(models.Model):
    name = models.CharField('Name', 
                            max_length=255,
                            help_text=_("e.g: 'welcome_email'"),
                            unique=True)

当我name在 Django 的管理界面中创建 2 个相同的模型时,我得到了预期的错误:Email Template with this Name already exists..

但是,如果我以编程方式执行此操作,我不会:

>>> EmailTemplate.objects.create(name='test_1')
<EmailTemplate: test_1 >
>>> EmailTemplate.objects.create(name='test_1')
<EmailTemplate: test_1 >

我错过了什么?我以为unique是数据库级别的约束?

标签: pythondjangodjango-models

解决方案


推荐阅读