Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django中post后的默认表单字段为空_Django - Fatal编程技术网

Django中post后的默认表单字段为空

Django中post后的默认表单字段为空,django,Django,型号: 表格: 在模板中,我只有“文本”字段。当我单击“提交”按钮时,form.data中的QueryDict只包含文本,而不考虑日期字段的默认值。如何正确设置默认值?更新: 我认为default=datetime.date.now的行为类似于auto\u now\u add=True,因为您提到您的模板只包含文本字段 事实证明,您的情况没有得到任何不同的处理,您必须在表单中显示date字段 如果要忽略它,可以重写ModelForm.save方法来自行设置日期,或者将其添加到模型save()定义

型号:

表格:

在模板中,我只有“文本”字段。当我单击“提交”按钮时,form.data中的QueryDict只包含文本,而不考虑日期字段的默认值。如何正确设置默认值?

更新:

我认为
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()