Слишком длинное значение для варьирования символов типа (30)


Я получаю это сообщение об ошибке на моем email field, но я использую встроенный django auth system. Есть ли простой способ его переопределить? При регистрации пользователя адрес электронной почты добавляется во встроенное поле внутри встроенной пользовательской системы.

Было бы здорово, если бы можно было расширить его на 30 символов из-за природы сайта.

2 3

2 ответа:

Это одна из проблем с использованием адресов электронной почты для имен пользователей в Django. Многие, многие электронные письма имеют более 30 символов. Один из распространенных способов решения этой проблемы - использование пользовательского "бэкенда аутентификации" для проверки подлинности электронной почты. Используя свой собственный сервер, вы можете аутентифицировать пользователя на основе поля email вместо Поля username. Затем вы можете сгенерировать имя пользователя на основе этого адреса электронной почты или используя произвольно сгенерированные имена пользователей.

Вы можете прочитать больше об этом подходе в моем блоге post аутентификация Django с использованием адреса электронной почты .

Может быть, это не правильный путь, но в моем проекте я просто увеличил размер электронной почты пользователя с помощью south. Пример:

    >> ./manage.py schemamigration auth --initial && ./manage migrate auth --fake

Затем я добавил в models.py:

    from django.contrib.auth.models import User
    field = User._meta.get_field('email')
    field.max_length = 254
    field = User._meta.get_field('username')
    field.max_length = 254

Теперь:

    >> ./manage.py schemamigration auth --auto
    >> ./manage.py migrate auth