В настоящее время я выполняю регистрацию пользователя для приложения.Я пытаюсь изменить поведение django.auth по умолчанию, чтобы использовать электронную почту вместо имени пользователя.Я думаю, что я буду использовать пользовательский бэкэнд аутентификации.Я хочу, чтобы пользователи все еще могли предоставить имя пользователя.
Как разрешить использование пробелов в имени пользователя, например "john doe", без изменения полей в моделях django.auth.
Как мнесделать поле электронной почты обязательным.в настоящее время метод clean_email в моей форме UserCreation вызывает ошибку проверки, если электронная почта пуста.Должен быть лучший способ.
Благодаря Брэндону и Эндрю Санду вот мое решение:
class RegisterForm(UserCreationForm):
username = forms.RegexField(label=("Username"), max_length=30, regex=r'^[ \t\r\n\f\w.@+*-]+$',
help_text = ("Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only."),
error_messages = {'invalid': ("This value may contain only letters, numbers and @/./+/-/_ characters.")})
class Meta:
model = User
Я скопировал поле из UserCreationForm.Важной частью является добавление \ t \ r \ n \ f к регулярному выражению.\ s не будет работать.