Добрый день!
Я тут решил исключительно при помощи того, что я уже знаю самостоятельно, написать проверку при регистрации пользователя, которая бы в случае наличия логина в базе говорила пользователю, что такой логин уже занят.
Проверяю на логине admin и всё работает, выводится соответствующее сообщение, но когда я пытаюсь зарегистрировать пользователя с любым другим логином получаю ошибку:
Exception Type: DoesNotExist
Exception Value: User matching query does not exist
На сколько я понимаю, это связано с тем, что
User.objects.get(username=request.POST['username'])
не находит соответствующее вхождение в базе и это логично, его там и не может быть.
А вот чего я не могу понять, так это почему вообще django лезет в это условие, если
if form.is_valid():
уже выполненно.
Вот сама вьюха с регистрацией и проверкой:
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'You have been successfully registered')
return redirect('login')
elif User.objects.get(username=request.POST['username']):
messages.warning(request, 'Username already exists')
else:
messages.error(request, 'Register Error')
else:
form = UserCreationForm()
return render(request, 'news/register.html', {'form':form})
Заранее большое спасибо!