Django中post后的默认表单字段为空
型号: 表格: 在模板中,我只有“文本”字段。当我单击“提交”按钮时,form.data中的QueryDict只包含文本,而不考虑日期字段的默认值。如何正确设置默认值?更新: 我认为Django中post后的默认表单字段为空,django,Django,型号: 表格: 在模板中,我只有“文本”字段。当我单击“提交”按钮时,form.data中的QueryDict只包含文本,而不考虑日期字段的默认值。如何正确设置默认值?更新: 我认为default=datetime.date.now的行为类似于auto\u now\u add=True,因为您提到您的模板只包含文本字段 事实证明,您的情况没有得到任何不同的处理,您必须在表单中显示date字段 如果要忽略它,可以重写ModelForm.save方法来自行设置日期,或者将其添加到模型save()定义
default=datetime.date.now
的行为类似于auto\u now\u add=True
,因为您提到您的模板只包含文本
字段
事实证明,您的情况没有得到任何不同的处理,您必须在表单中显示date
字段
如果要忽略它,可以重写ModelForm.save
方法来自行设置日期,或者将其添加到模型save()
定义中
您应该查看模型字段定义中的auto\u now\u add=True
参数,该参数在第一次保存时自动将日期字段设置为datetime.datetime.now()
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
你应该写
date = models.DateTimeField(auto_now_add=True)
用括号调用函数ang get datetime。现在有一个自动\u字段可以更好地执行此操作
这是从视图中提供初始数据的另一种方法:
form=CommentForm(首字母={'date':datetime.datetime.now(),'text':u'',}
阅读有关“保存此模型/模型表单将自动填充实例/数据库中的默认值”的详细信息。但是form.is\u valid()返回False,错误消息为“此字段是必需的”啊,我猜
default=
不会这样做。auto\u now\u add
会执行表单排除行为。我认为它的行为是相同的,因为您说“只有文本字段”。在这种情况下,您只是不显示form.date
字段,该字段填充了默认值。
date = models.DateTimeField(auto_now_add=True)
default = datetime.datetime.now()