Как исправить редирект после регистрации? Django

Сегодня столкнулся с такой проблемой, что после регистрации форма никуда не переходит. Загвоздка в том, что форма не отправляет запрос в базу данных, но я могу создать пользователя через админ-панель Django.

views.py

def registration(request):
    if request.method == 'POST':
        form = UserRegistrationForm(data=request.POST)
        if form.is_valid():
            form.save()
            user = form.instance
            auth.login(request, user)
            messages.success(
                request, f'{user.username}, Successful Registration'
            )
            return HttpResponseRedirect(reverse('user:login'))
    else:
        form = UserRegistrationForm()
    return render(request, 'users/registration.html')

forms.py

from django import forms
from django.contrib.auth.forms import AuthenticationForm, \
    UserCreationForm, UserChangeForm
from .models import User


class UserLoginForm(AuthenticationForm):
    username = forms.CharField()
    password = forms.CharField()
    
    
    class Meta:
        model = User
        fields = ['username', 'password']
        

class UserRegistrationForm(UserCreationForm):
    class Meta:
        model = User
        fields = (
            'first_name',
            'last_name',
            'username',
            'email',
            'password1',
            'password2',
        )
        
        
        first_name = forms.CharField()
        last_name = forms.CharField()
        username = forms.CharField()
        email = forms.CharField()
        password1 = forms.CharField()
        password2 = forms.CharField()
        

class ProfileForm(UserChangeForm):
    class Meta:
        model = User
        fields = (
            'image',
            'first_name',
            'last_name',
            'username',
            'email',
        )
    
    
        image = forms.ImageField(required=False)
        first_name = forms.CharField()
        last_name = forms.CharField()
        username = forms.CharField()
        email = forms.CharField()

registration.html

urls.py

from django.urls import path
from . import views


app_name = 'users'

urlpatterns = [
    path('login/', views.login, name='login'),
    path('registration/', views.registration, name='registration'),
    path('profile/', views.profile, name='profile'),
    path('logout/', views.logout, name='logout'),
]

Я изменил форму регистрации, но ничего не получилось, пожалуйста, помогите мне!

я успешно решил эту проблему!

views.py

я исправляю этот штрих, чтобы передать обратную форму в шаблон

return render(request, 'users/registration.html', {'form': form})

и исправьте этот штрих

user = form.save()

В результате функция выглядит следующим образом

def registration(request):
    if request.method == 'POST':
        form = UserRegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()  
            auth.login(request, user) 
            messages.success(
                request, f'{user.username}, Successful Registration'
            )
            return HttpResponseRedirect(reverse('user:login'))
    else:
        form = UserRegistrationForm()
    
    return render(request, 'users/registration.html', {'form': form})
Вернуться на верх