#python #django
#python #django
Вопрос:
Я изучаю Django и столкнулся с вопросом.
В нескольких руководствах Django Youtube я вижу, как Youtuber использует UserCreationForm для создания страницы регистрации, а затем экспериментирует с формой, чтобы показать зрителям страницу.
И наступает момент, когда они регистрируют пользователя, возможно, с именем пользователя «test1», а затем пытаются зарегистрировать пользователя с тем же именем пользователя, что и «test1», и они получают сообщение об ошибке «пользователь с этим именем пользователя уже существует»
Однако, когда я следовал этим руководствам, я вижу, что сообщение об ошибке больше не появляется, и оно просто снова отображает исходную UserCreationForm на веб-странице.
Удалено ли это сообщение об ошибке? И я просматривал файлы Django Github и документацию Django, но в ней ничего не упоминается об ошибке имени пользователя, так что… Я думаю, что он удален, но я хочу быть уверенным.
* редактировать! Я добавил код к своему вопросу, как показано ниже:
# views.py
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth import login, logout
from django.http import HttpResponse
def signup_view(request):
if request.method == "POST":
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login()
return redirect('articles:article_list')
form = UserCreationForm()
context = {'form':form}
return render(request, 'accounts/signup.html', context)
# login.html
{% extends 'base.html' %}
{% block content %}
<form class="site-form" action="" method="POST">
{% csrf_token %}
{{ form }}
<input type="submit" value="Login">
</form>
{% endblock %}
Комментарии:
1. Вы используете стандартную модель пользователя и шаблон страницы создания пользователя или создали свой собственный?
2. поделитесь полным кодом!!
3. Пожалуйста, добавьте код к вашему вопросу.
4. Я использую стандартную модель пользователя! Я добавил приведенный выше код
Ответ №1:
Нашел ответ.
Похоже, что UserCreationForm не выводит эту ошибку по умолчанию, когда имя пользователя уже существует. Когда вы пытаетесь напечатать ошибку вручную, чтобы проверить, существует ли имя пользователя в базе данных, это работает!