我在Django 1.5中有以下模型:
class Person(models.Model):
name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
请注意,根据https://docs.djangoproject.com/en/dev/ref/models/fields/,name.blank 默认为False,这意味着必须指定它.
但是,我可以成功创建一个Person对象,如下所示:
Person.objects.create()
Run Code Online (Sandbox Code Playgroud)
请注意,未指定名称.到底是怎么回事?
好的,文档的答案是:
请注意,这与null不同.null纯粹与数据库相关,而blank与验证相关.如果字段为空= True,则表单验证将允许输入空值.如果字段为空= False,则将需要该字段.
另一个问题:
请注意,保存模型时不会自动运行验证程序,但如果您使用的是ModelForm,它将在表单中包含的任何字段上运行验证程序.
如果您没有使用表单,则在保存之前调用干净方法是您的责任.
我有这样一个模型:
class Message(models.Model):
msg = models.CharField(max_length = 150)
Run Code Online (Sandbox Code Playgroud)
我有一个插入字段的表单.实际上django允许空的空间,例如,如果我在字段中插入一个它工作的空间.但现在我想解决这个问题:该字段不是必需的,但如果用户插入空格,则验证应该失败.
我已经添加:
class Message(models.Model):
msg = models.CharField(max_length = 150, blank = False)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.怎么了?