Не регистрирует нового пользователя, Django 3
Мучаюсь с регистрацией нового пользователя. Django 3.2.13, Python 3.10 После заполнения форм при удачной записи в таблицу данных, должно перенести на страницу логования, но этого не происходит, понятия не имею в чем причина. Помогите.
forms.py:
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django import forms
from users.models import User (только додал поле image для AbstractUser)
class UserRegistrationForm(UserCreationForm):
first_name = forms.CharField(widget=forms.TextInput(attrs={
'class': 'form-control py-4', 'placeholder': 'Enter your first name'
}))
last_name = forms.CharField(widget=forms.TextInput(attrs={
'class': 'form-control py-4', 'placeholder': 'Enter your last name'
}))
username = forms.CharField(widget=forms.TextInput(attrs={
'class': 'form-control py-4', 'placeholder': 'Enter username'
}))
email = forms.CharField(widget=forms.EmailInput(attrs={
'class': 'form-control py-4', 'placeholder': 'Enter your email address'
}))
class Meta:
model = User
fields = ('first_name', 'last_name', 'username', 'email', 'password1', 'password2')
registrations.html:
<form action="{% url 'users:registration' %}" method="post">
{% csrf_token %}
<div class="form-row">
<div class="col-md-6">
<div class="form-group">
<label class="small mb-1" for="{{ form.first_name.id_for_label }}">First name</label>
{{ form.first_name }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="small mb-1" for="{{ form.last_name.id_for_label }}">Last name</label>
{{ form.last_name }}
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-6">
<label class="small mb-1" for="{{ form.username.id_for_label }}">Username</label>
{{ form.username }}
</div>
<div class="col-md-6">
<label class="small mb-1" for="{{ form.email.id_for_label }}">Email address</label>
{{ form.email }}
</div>
</div>
<div class="form-row">
<div class="col-md-6">
<div class="form-group">
<label class="small mb-1" for="{{ form.password1.id_for_label }}">Password</label>
{{ form.password1 }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="small mb-1" for="{{ form.password2.id_for_label }}">Repeat the password</label>
{{ form.password2 }}
</div>
</div>
</div>
<div class="form-group mt-4 mb-0">
<input class="btn btn-primary btn-block" type="submit" value="Create a account">
</div>
</form>
views.py:
from django.shortcuts import render, HttpResponseRedirect
from django.contrib import auth, messages
from django.urls import reverse
from users.forms import UserLoginForm, UserRegistrationForm
def registration(request):
if request.method == 'POST':
form = UserRegistrationForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, f'Your account has been created. You can log in now!')
return HttpResponseRedirect(reverse('users:login'))
else:
form = UserRegistrationForm()
context = {'form': form}
return render(request, 'users/registration.html', context)