> On Tuesday, April 26, 2011 10:37:50 AM UTC+1, Derek wrote:
>
> > I have a form that I am expecting will redisplay with errors; it does not
> > do so. Instead, the "print form.errors" statement is reached which does, in
> > fact, show that there are errors. For example:
>
> > <ul class="errorlist"><li>cellphone<ul class="errorlist"><li>This field is
> > required.</li></ul>
>
> > What else do I need to do to have the form be redisplayed?
>
> > Thanks
> > Derek
>
> > # form
> > class PersonForm(ModelForm):
> > class Meta:
> > model = Person
> > fields = (
> > 'first_name', 'last_name', 'date_of_birth', 'gender', 'email',
> > 'cellphone', 'area',
> > )
>
> > # view
> > person = Person.objects.get(pk=id)
> > if request.method == 'POST':
> > form = PersonForm(request.POST, instance=person)
> > if form.is_valid():
> > form.save()
> > return HttpResponseRedirect('/profile/')
> > else:
> > print form.errors
> > else:
> > form = PersonForm(instance=person)
> > return render_to_response(
> > 'profile_edit.html',
> > {'form': form},
> > context_instance=RequestContext(request))
>
> Just move the final return call back one indent. The form will then be
> displayed in all cases other than successful validation.
Thanks Daniel for the hint. For the record, this was the final code
that worked:
# Get person to be edited
person = Person.objects.get(pk=id)
# Create form
if request.method == 'POST':
form = PersonForm(request.POST, instance=person)
if form.is_valid():
# Save form data if valid
form.save()
return HttpResponseRedirect('/profile/')
else:
form = PersonForm(instance=person)
# Display form (also show any form errors)
return render_to_response(
'profile_edit.html',
{
'username': request.user.username,
'profile_info': user_profile,
'form': form
},
context_instance=RequestContext(request))
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment