Django模型中的必填字段不是强制性的?

时间:2017-05-21 19:53:44

标签: django model required-field

我有以下Django模型:

class Customer(models.Model):
    email = models.EmailField(unique=True)

在我的测试用例中,我没有发送电子邮件就实例化了。

class CustomerTestCase(TestCase):
    def test_that_customer_can_be_created_with_minimum_data(self):
        customer = Customer.objects.create()
        print(customer.__dict__)

我希望它会引发错误,但会创建一个空字段email的记录。如果我明确说出null=Falseblank=False,就会发生同样的事情。相反,它只打印空电子邮件。

{'email': ''}

我错过了什么?

1 个答案:

答案 0 :(得分:3)

您错过了保存时未运行验证的事实 - 请参阅the validation docs

  

请注意,保存模型时不会自动运行验证程序,但如果您使用的是ModelForm,它将在表单中包含的任何字段上运行验证程序。

正如该文件所暗示的那样,通常验证是在表格的背景下进行的。