0

我从这个开始:

from django.db import models

class Example(models.Model):
     id = models.CharField(null=False, blank=False)
     name = models.CharField(null=False, blank=False)

现在,如果我创建一个具有名称但没有 id 的新对象,则 id 将被替换为空字符串,并且对象创建将成功。

example = Example.objects.create(name="test")

我希望它返回一个错误,因为我指定了null=Falseand blank=False。有没有“本地”的方式来做到这一点?我正在使用 Django 1.3.6。

4

1 回答 1

1

当然,这不是错误,但在文档中进行了充分说明。从字段选项文档

如果一个字段有空白=真,表单验证将允许输入一个空值。如果某个字段的空白=False,则该字段将是必需的。

关键是对验证的引用。当然,这些文档也对数据验证有一个完整的选择。同样,从该页面:

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

因此,正如模型验证页面所解释的,要应用空白=False 的验证,您应该运行模型的full_clean()方法。

(无论如何,抱怨两个版本的旧版本中可能存在的错误是没有意义的:如果您认为存在错误,则应该升级到最新版本,看看是否已修复。无论如何,这不是漏洞。)

于 2013-08-19T18:45:27.663 回答