Django form always shows the error "This field is required"

When I create my form, django always displays an error message in each field "This field is required" even if the form is not submitted. What could be the problem?

Here is my model form

class MMEditidStateForm(forms.ModelForm): class Meta: model = models.MMEditidState exclude = ('status_id',) 

Here is my model

 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) 

Here is my look

 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)) 

Now I just pass my form in the template as

  <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> 

Please let me know what could be the problem? I didn't have this error message before

+4
source share
3 answers

Since you always create a form using request.POST , even if you do not actually publish it. In your else clause, release request.POST .

+10
source

or use

 form = forms.MMEditidStateForm(request.POST or None) 

without condition, for example:

 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)) 
+3
source

For those still looking for an answer: I have the same problem. In this case, I recommend updating this line:

 form = forms.MMEditidStateForm(request.POST or None) 

hope this helps.

0
source

All Articles