1 2 3 4 5 6 7 8 | class UserField(forms.CharField):
def clean(self, value):
super(UserField, self).clean(value)
try:
User.objects.get(username=value)
raise forms.ValidationError("Someone is already using this username. Please pick an other.")
except User.DoesNotExist:
return value
|
More like this
- use oldforms validators in newforms forms by garywilson 5 years, 1 month ago
- AgreementField by chrisrbennett 3 years, 11 months ago
- Scan uploaded file for viruses with clamav by uandt 3 years, 12 months ago
- Spanish National Identification Number Field (DNI) by cues7a 11 months, 1 week ago
- SeparatedValuesField by jezdez 4 years, 5 months ago
Comments
Hi,
This snippet contains a small bug, line 3 should be:
value = super(UserField, self).clean(value)
Reason:
The 'clean' method of the parent class - forms.Charfield - returns 'value' converted to a unicode string, however in the snippet this return value is ignored.
HTH,
Richard
PS It took me a while to understand why é and ô's were causing me a problem :-)
#
Lines 6 and 7 should be swapped, and line 8 should be un-indented a level.
#