[EMAIL PROTECTED] wrote: > Here's what I've done: > > if request.method == 'POST': > submission = request.POST.copy() > submission['slug'] = slugify(submission['name']) > form = ClubFormClass(submission) > if Club.objects.get(slug=submission['slug']): > form.errors['name'] = '<ul><li>Club is already in database</ > li></ul>' > if form.is_valid(): > form.save() > return HttpResponseRedirect('/thankyou/') > else: > form = ClubFormClass()
I'd implement it as a clean_fieldname method. The fact that in the above you're having to mess around with errors dictionary manually for something this simple is a bad smell to watch out for. form ---- def ClubForm(forms.Form): name = forms.CharField(...) ... def clean_name(self): slug = slugify(self.cleaned_data['name']) if Club.objects.filter(slug=slug).count(): raise forms.ValidationError(u'Club is already in database') return self.cleaned_data['name'] view ---- if request.method == 'POST': form = ClubForm(data=request.POST) if form.is_valid(): club = form.save() # Do the slugify() in your save method return HttpResponseRedirect(club.get_absolute_url()) else: form = ClubForm() Jonathan. --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---