2012-02-07 5 views
2

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

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

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

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

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

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

По моему опыту, create_user позволяет что-либо в качестве имени пользователя.

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

ответ

4

Просто добавьте метод в форму:

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 
Смежные вопросы