def patch_user_model_username(model): field = model._meta.get_field("username") field.max_length = MAX_USERNAME_LENGTH() field.help_text = _("Required, %s characters or fewer. Only letters, " "numbers, and @, ., +, -, or _ " "characters." % MAX_USERNAME_LENGTH()) # patch model field validator because validator doesn't change if we change # max_length for v in field.validators: if isinstance(v, MaxLengthValidator): v.limit_value = MAX_USERNAME_LENGTH()
def forwards(self, orm): # Changing field 'User.username' db.alter_column('auth_user', 'username', models.CharField(max_length=MAX_USERNAME_LENGTH())) # Increase length of email field to match db.alter_column('auth_user', 'email', models.CharField(max_length=MAX_EMAIL_LENGTH())) # Add an index to make email field unique db.create_index('auth_user', ['email'], unique=REQUIRE_UNIQUE_EMAIL())
field.help_text = _("Required, %s characters or fewer. Only letters, " "numbers, and @, ., +, -, or _ " "characters." % MAX_LAST_NAME_LENGTH()) # patch model field validator because validator doesn't change if we change # max_length for v in field.validators: if isinstance(v, MaxLengthValidator): v.limit_value = MAX_LAST_NAME_LENGTH() from django.contrib.auth.models import User # https://github.com/GoodCloud/django-longer-username/issues/1 # django 1.3.X loads User model before class_prepared signal is connected # so we patch model after it's prepared # check if User model username is patched if User._meta.get_field("username").max_length != MAX_USERNAME_LENGTH(): patch_user_model_username(User) # check if user model email is patched if User._meta.get_field("email").max_length != MAX_USERNAME_LENGTH(): patch_user_model_email(User) if User._meta.get_field("first_name").max_length != MAX_FIRST_NAME_LENGTH(): patch_user_model_first_name(User) if User._meta.get_field("last_name").max_length != MAX_LAST_NAME_LENGTH(): patch_user_model_last_name(User)
def __init__(self, *args, **kwargs): super(AuthenticationForm, self).__init__(*args, **kwargs) update_field_length(self.fields['username'], MAX_USERNAME_LENGTH())
def __init__(self, *args, **kwargs): super(UserChangeForm, self).__init__(*args, **kwargs) update_field_length(self.fields['username'], MAX_USERNAME_LENGTH())
def forwards(self, orm): # Changing field 'User.username' db.alter_column('auth_user', 'username', models.CharField(max_length=MAX_USERNAME_LENGTH())) # Increase length of email field to match db.alter_column('auth_user', 'email', models.CharField(max_length=MAX_EMAIL_LENGTH()))