Thank you Daniel,

That's absolutely what it was.

So posting all that amount of code was fruitful after all, else we
would have gone back and forth trying to find out where the problem
lay!!

Regards,
CM

On Jun 19, 12:19 am, Daniel Roseman <dan...@roseman.org.uk> wrote:
> On Jun 18, 8:02 pm, chefsmart <moran.cors...@gmail.com> wrote:
>
>
>
> > Hi,
> <snip>
> > Now consider the following view: -
>
> > def edit_diploma(request, did):
> >     diploma_to_edit = Diploma.objects.get(id=did)
> >     if request.method == 'POST':
> >         form = EditDiplomaForm(request.POST)
> >         if form.is_valid():
> >             diploma_to_edit.name = form.cleaned_data['name']
> >             diploma_to_edit.short_name = form.cleaned_data
> > ['short_name']
> >             diploma_to_edit.is_active = form.cleaned_data['is_active']
> >             diploma_to_edit.save()
> >             return HttpResponseRedirect(reverse('drf-list_diplomas'))
> >     else:
> >         data = {'name': diploma_to_edit.name,
> >                 'short_name': diploma_to_edit.short_name,
> >                 'is_active': diploma_to_edit.is_active}
> >         form = EditDiplomaForm(data)
> >     return render_to_response('edit_diploma.html', {'form': form},
> > context_instance=RequestContext(request))
>
> > My edit_diploma.html template looks like the following: -
>
> > <form method="post" action="." class="uniForm">
> >     <fieldset class="blockLabels">
> >         <legend>Edit diploma</legend>
> >         {% for field in form %}
> >             {% if field.errors %}
> >                 <div class="ctrlHolder error">
> >                 {% for error in field.errors %}
> >                     <p class="errorField"><strong>{{ error }}</
> > strong></p>
> >                 {% endfor %}
> >             {% else %}
> >                 <div class="ctrlHolder">
> >             {% endif %}
> >                     {{ field.label_tag }}
> >                     {{ field }}
> >                     <p class="formHint">{{ field.help_text }}</p>
> >                 </div>
> >         {% endfor %}
> >     </fieldset>
> >     <div class="buttonHolder">
> >         <button type="reset" class="resetButton">Reset</button>
> >         <button type="submit" class="primaryAction">Submit</button>
> >     </div>
> > </form>
>
> > When accessing the view via HTTP GET, the desired model instance's
> > data is shown in the form for editing. However, my template has  {% if
> > field.errors %} to accommodate different CSS for erroneous and error-
> > free data. If I'm correct, this  {% if field.errors %} is causing
> > validation to occur and thus I'm getting error messages in the
> > rendered html even when accessing the view via HTTP GET.
>
> > This of course is not desired. Could you please suggest a way to
> > handle this? I need the validation and I need the conditional CSS as
> > well.
>
> > Thanks and Regards,
> > CM.
>
> The problem is here:
>
>         data = {'name': diploma_to_edit.name,
>                 'short_name': diploma_to_edit.short_name,
>                 'is_active': diploma_to_edit.is_active}
>         form = EditDiplomaForm(data)
>
> It is the fact that you're passing this dictionary in as the 'data'
> parameter, not the calling of is_errors in your template, which is
> triggering validation. You need to pass it in as 'initial' instead -
> if you do that, the form fields will be populated, but validation will
> not take place.
>
>         form = EditDiplomaForm(initial=data)
>
> Seehttp://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form...
> --
> DR.
--~--~---------~--~----~------------~-------~--~----~
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to