class MyForm(forms.Form):
name = forms.CharField(max_length=50)
def clean_name(self):
name = self.cleaned_data['name']
if name == 'Bob':
raise forms.ValidationError(u'Name cannot be "Bob"')
self.data['name'] = ''
return name
Hope that helps you out.
[Edit]
Here's an expanded example that is working for me in Django 1.3.
#models.py
from django.db import models
class ContactRequest(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
subject = models.CharField(max_length=255)
message = models.TextField()
response_returned = models.BooleanField(default=False)
def __unicode__(self):
return self.name
#forms.py
class ContactRequestForm(forms.ModelForm):
class Meta:
model = ContactRequest
exclude = ('response_returned',)
def clean_email(self):
email = self.cleaned_data['email']
if email != 'test@test.com':
self.data['email'] = ''
raise forms.ValidationError(u'Email is not test@test.com')
return email