Проверка имени пользователя с помощью Django authenticate - PullRequest
3 голосов
/ 08 февраля 2012

Я сейчас создаю приложение для Django. У меня есть форма, где пользователь вводит свои данные для регистрации. Я использую таблицу User (из django.contrib.auth.models), и у меня также есть таблица UserProfile, где я храню дополнительную информацию. Мой вопрос заключается в том, как мне проверить (без специальных символов, без пробелов и т. Д.) Имя пользователя, которому я отправляю:

new_user = User.objects.create_user( username, email, password)

Я использую форму из модели UserProfile. Я пытаюсь проверить мою форму с помощью: form.is_valid ():

Но поскольку поле «Пользователь» является внешним ключом, оно преобразуется в поле с множественным выбором, поэтому оно не проверяется, если пользователь уже не присутствует в таблице «Пользователь».

Так как я могу проверить имя пользователя перед вызовом

User.objects.create_user( username, email, password)

По моему опыту, create_user разрешает что угодно в качестве имени пользователя.

Любая помощь приветствуется.

1 Ответ

4 голосов
/ 08 февраля 2012

Просто добавьте метод к вашей форме:

def clean_username(self):
    username = self.cleaned_data.get('username')
    # do whatever checks you want and raise `ValidationError` if there's an issue
    return username
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...