Я работаю над страницей регистрации для пользователей.Он работает нормально, за исключением процесса, когда есть ошибки в представленной форме.После нажатия кнопки signup
страница перенаправляется на login
с уведомлением username or password mismatch
.Это уведомление, введенное мной на странице login
, если есть какие-либо ошибки.
внутри views.py
def signup(request):
if request.method=='POST':
form =SignupForm(request.POST)
if form.is_valid():
form.save()
return redirect('login')
else:
error=form.errors
return render(request,'registration/signup.html',{'error':error})
#return redirect('signup',{'error':error})
else:
form = SignupForm()
return render(request,'registration/signup.html',{'form':form})
мой шаблон для signup.html
:
{% extends 'blog/base.html' %}
{% block content %}
<h2>Sign up</h2>
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
{% if form.errors %}
<h1>Error {{error}}</h1>
{{ error }}
{% endif %}
{{ form.as_p }}
<button type="submit">Sign up</button>
</form>
{% endblock %}
path('signup/',views.signup,name='signup')
path('accounts/login/',LoginView.as_view(), name='login')
форма длярегистрация:
class SignupForm(UserCreationForm):
first_name=forms.CharField(label="First Name",widget=forms.TextInput(attrs={'placeholder': 'First Name'}))
last_name=forms.CharField(label='Last Name')
#Removes the help_texts
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
self.fields['password1'].help_text = None
class Meta:
model=User
fields=('first_name','last_name','username','email','password1','password2')
Почему это происходит?Как я могу отобразить ту же страницу регистрации для пользователя с дополнительной информацией об отображении ошибок.как **some_error** happened. Please fill out the form again
.И почему эта страница перенаправляется на страницу входа в каждом случае и почему на странице входа отображаются ошибки, когда предполагается, что ошибки отображаются на той же странице?