I have the ModelForm below to let the user edit some of their basic
User fields like username, first/last name and email.  During testing,
I discovered that I could edit and save a username that included non-
alpha characters.  When I log into the admin system, the username is
set to the new value.  I can log back in with the new username as
well.  It seems to work OK, but I wonder if it could cause problems
elsewhere.  How do I get it to do the same username validation as at
creation?


class UserForm( ModelForm ):

        class Meta:
                model = User
                exclude = ( 'password', 'is_staff', 'is_superuser', 
'last_login',
'is_active', 'date_joined' )

        def clean_username( self ):
                old_username = self.instance.username
                new_username = self.cleaned_data.get( 'username', '' )
                if old_username != new_username:
                        try:
                                User.objects.get( username=new_username )
                        except User.DoesNotExist:
                                return new_username
                        raise forms.ValidationError( 'A user with this username 
already
exists.  Please user another.' )
                return new_username
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to