Django Регистрация - Проверяет, существует ли уже пользователь
В настоящее время веб-приложение должно иметь возможность регистрировать новых пользователей. Однако, если пользователь уже существует, оно должно перенаправлять пользователя на страницу входа с сообщением "Пользователь уже существует!".
Представления Django:
from django.contrib.auth.models import User
def registerPage(request):
form = CreateUserForm()
if request.method == 'POST':
form = CreateUserForm(request.POST)
if form.is_valid():
email = form.cleaned_data['email']
username = form.cleaned_data['username']
if User.objects.filter(username=username).exists():
messages.info(
request, 'User already exists! Try logging in.')
return redirect('login')
else:
user = form.save(commit=False)
raw_password = User.objects.make_random_password()
user.set_password(raw_password)
user.save()
...
Я фильтрую пользователя по его/ее имени пользователя и проверяю, существует ли он уже, используя метод exists(). Однако это, похоже, не работает. Может быть, я что-то упускаю?
UPDATE
.
То, что не работает, это то, что проверка, как я полагаю, не работает. Потому что если она успешно проверяет, что пользователь существует, то она должна redirect('login') вместо выполнения оператора else.
username уже отмечено unique=True в auth/models.py, поэтому просто можно использовать try/catch.