Django表单始终显示错误“;此字段为必填字段;
当我呈现我的表单django时,总是在每个字段上显示一条错误消息“此字段是必需的” 即使表格未提交。有什么问题吗 这是我的表格范本Django表单始终显示错误“;此字段为必填字段;,django,forms,Django,Forms,当我呈现我的表单django时,总是在每个字段上显示一条错误消息“此字段是必需的” 即使表格未提交。有什么问题吗 这是我的表格范本 class MMEditidStateForm(forms.ModelForm): class Meta: model = models.MMEditidState exclude = ('status_id',) 这是我的模型 class MMEditidState(models.Model): state_id = models.I
class MMEditidStateForm(forms.ModelForm):
class Meta:
model = models.MMEditidState
exclude = ('status_id',)
这是我的模型
class MMEditidState(models.Model):
state_id = models.IntegerField(primary_key = True)
state_dremelid = models.ForeignKey(MMDremelDump, db_column = 'state_dremelid')
assignee = models.CharField(max_length = 50)
state = models.CharField(max_length = 50)
role = models.CharField(max_length = 50)
date = models.DateTimeField()
class Meta:
db_table = u'mm_editid_state'
def __unicode__(self):
return u'%s %s' % (self.state_dremelid, self.assignee)
这是我的看法
def qcthisedit(request, get_id):
dremel_id = MMEditidState.objects.filter(pk=get_id).values('state_dremelid')
if request.method == "POST":
form = forms.MMEditidStateForm(request.POST)
if form.is_valid():
form.save()
return http.HttpResponseRedirect('/mmqc/dremel_list/')
else:
form = forms.MMEditidStateForm(request.POST)
return shortcuts.render_to_response('qcthisedit.html',locals(),
context_instance = context.RequestContext(request))
现在,我只是将模板中的表单呈现为
<table>
<h3>Submit this form if there are no errors</h3>
<form action="." method="post">
{{form.as_table}}
</table>
<input type="submit" value="Submit">
<INPUT TYPE="BUTTON" VALUE="Go Back" ONCLICK="history.go(-1)"></form><br>
如果没有错误,请提交此表格
{{form.as_table}}
请告诉我可能有什么问题?以前,我没有收到此错误消息,因为您总是使用
request.POST
实例化表单,即使您实际上没有向表单发帖。在else
子句中,删除请求。发布或使用
form = forms.MMEditidStateForm(request.POST or None)
没有if条件,如下所示:
def qcthisedit(request, get_id):
dremel_id = MMEditidState.objects.filter(pk=get_id).values('state_dremelid')
form = forms.MMEditidStateForm(request.POST or None)
if form.is_valid():
form.save()
return http.HttpResponseRedirect('/mmqc/dremel_list/')
return shortcuts.render_to_response('qcthisedit.html',locals(),
context_instance = context.RequestContext(request))
对于那些仍在寻求答案的人:
我也有同样的问题。在这种情况下,我的建议是更新这一行:
form = forms.MMEditidStateForm(request.POST or None)
希望能有帮助 只是为了澄清Daniel的答案:form=forms.mmeditStateform()
这并不能解决问题,所需的消息仍在显示@丹尼尔的回答是正确的