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)
Example #4
0
 def __init__(self, *args, **kwargs):
     super(AuthenticationForm, self).__init__(*args, **kwargs)
     update_field_length(self.fields['username'], MAX_USERNAME_LENGTH())
Example #5
0
 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()))