code_junkie

Django and Custom Form validation

Nov 13th, 2011
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. class UsernameField(forms.CharField):
  2. def clean(self, values):
  3. print ""
  4.  
  5. class RegisterForm(forms.Form):
  6. username = UsernameField(max_length=30, min_length=4)
  7. password = forms.CharField(widget = forms.PasswordInput(), min_length=5)
  8. password2 = forms.CharField(widget = forms.PasswordInput(), min_length=5)
  9. email = forms.EmailField(max_length=75)
  10.  
  11. class RegisterForm(forms.Form):
  12. username = forms.CharField(max_length=30, min_length=4)
  13. ...
  14. ...
  15.  
  16. def clean_username(self):
  17. username = self.cleaned_data['username']
  18. try:
  19. user = User.objects.get(username=username)
  20. except User.DoesNotExist:
  21. return username
  22. raise forms.ValidationError(u'%s already exists' % username )
  23.  
  24. def clean(self):
  25. # Here you'd perform the password check
  26. ...
  27.  
  28. class MyField(forms.CharField):
  29. def clean(self, value):
  30. # perform cleaning
  31. return value
  32.  
  33. class UsernameField(forms.CharField):
  34. def clean(self, request, initial=None):
  35. field = super(UsernameField, self).clean(request)
  36.  
  37. from django.contrib.auth.models import User
  38. user = User(username=request)
  39. if user is not None:
  40. raise forms.ValidationError("That username is already taken")
Add Comment
Please, Sign In to add comment