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