Hi,

Now when I think about this, even when I POST the form, I would
somehow have to tell Django to check for uniqueness in the following
way: -

SELECT * from my_table WHERE short_name = [short_name parameter goes
here] AND id != [primary key parameter goes here]

and

SELECT * from my_table WHERE name = [name parameter goes here] AND id !
= [primary key parameter goes here]

On Jun 19, 12:29 am, chefsmart <moran.cors...@gmail.com> wrote:
> 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