On Fri, Jun 27, 2008 at 12:10 PM, omat <[EMAIL PROTECTED]> wrote:
>
> Thanks for the clarification.
>
> Apparently my demo case of the problem was not appropriate, but my
> real problem is still there.
>
> I have 2 ModelForms that I want to receive data at a single form
> submission.
>
> item_form is required only if 'item' field of the entry_form is
> empty.
>
> So I build the logic in my view that handles the form as follows:
>
> def form(request):
> ...
> if request.method == 'POST':
> item_form = ItemForm(request.POST, instance=item)
> entry_form = EntryForm(request.POST, instance=entry)
> if entry_form.is_valid():
> e = entry_form.save(commit=False)
> e.user = request.user
> if not form.cleaned_data['item']:
> if item_form.is_valid():
> e.item = item_form.save()
> else:
> return render_to_response(...)
> e.save()
> return HttpResponseRedirect(...)
> else:
> return render_to_response('blog/form.html',
> {'entry_form': entry_form,
> 'item_form': item_form,
>
> context_instance=RequestContext(request))
>
>
> But when I submit an invalid entry_form (i.e. nothing related to item
> form is executed or accessed other then the initialization item_form =
> ItemForm(request.POST, instance=item)) the item_form arrives at my
> template with a filled errors dictionary.
>
> Any opinions?
>
item_form doesn't 'arrive at' your template with a filled in errors
dictionary. Rather, rendering of item_form checks for (accesses) the errors
attribute, which triggers validation and populates the errors dictionary.
If you ever (including during rendering in the template) attempt to access
errors, errors gets populated. So you need to change your logic so that you
do not generate a form that will get validation errors in cases where you
don't care to see those errors because of some other circumstance. Sorry,
it isn't quite clear to me what you are trying to do exactly so it's hard
for me to be more specific as to recommendations.
Karen
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---