Что-то не так с запуском alter table на auth_user
, чтобы username
было varchar(75)
, чтобы оно могло вместить электронную почту? Что это сломает, если что-нибудь?
Если бы вы изменили auth_user.username
на varchar(75)
, где бы вам нужно было изменить django? Это просто вопрос изменения 30 на 75 в исходном коде?
username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters"))
Или есть другие проверки в этом поле, которые необходимо изменить, или какие-либо другие последствия для этого?
См. Обсуждение комментариев с bartek ниже относительно причины для этого.
Редактировать : оглядываясь на это спустя много месяцев. Для тех, кто не знает предпосылки: в некоторых приложениях нет требования или желания использовать имя пользователя, они используют только электронную почту для регистрации и авторизации. К сожалению, в django auth.contrib требуется имя пользователя. Вы можете начать помещать электронные письма в поле имени пользователя, но поле имеет только 30 символов, и в реальном времени электронные письма могут быть длинными. Потенциально даже дольше, чем 75 символов, предложенных здесь, но 75 символов соответствуют большинству вменяемых адресов электронной почты. Вопрос нацелен на эту ситуацию, с которой сталкиваются приложения на основе аутентификации электронной почты.