Новые пользователи не могут войти в сеансы в Django
Я создал форму регистрации пользователя, когда я пытаюсь зарегистрировать нового пользователя, он возвращается к той же форме, пока я перенаправляю его на главную страницу. Когда я пытаюсь войти в систему, я получаю None, поэтому в шаблоне выводится 'Wrong username or password.'. Однако, суперпользователь, которого я создал через командную строку после первой установки django, может войти без проблем.
views.py
from .models import *
from .forms import OrderForm, CustomerForm, CreateUserForm
from django.contrib.auth.forms import UserCreationForm
from django.contrib import messages
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
def registerPage(request):
if request.user.is_authenticated:
return redirect('home')
else:
if request.method == 'POST':
form_value = CreateUserForm(request.POST)
if form_value.is_valid():
form_value.save()
user = form_value.cleaned_data.get('username')
messages.success(request, 'Account was create for {}'.format(user))
return redirect('login')
form_value = CreateUserForm
context = {'form_key':form_value}
return render(request, 'accounts/register.html', context)
def loginPage(request):
if request.user.is_authenticated:
return redirect('home')
else:
if request.method == 'POST':
username_value=request.POST.get('username')
password_value=request.POST.get('password')
user = authenticate(request, username=username_value, password=password_value)
if user is not None:
login(request, user)
return redirect('home')
else:
messages.info(request, 'Username or Password is incorrect')
context = {}
return render(request, 'accounts/login.html', context)
forms.py
from django.db import models
from django.forms import ModelForm, fields
from django.contrib.auth.forms import UserCreationForm
from django import forms
from django.contrib.auth.models import User
class CreateUserForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
Я думаю, что проблема возникает, когда я создаю пользователя. Если вам нужно больше информации, пожалуйста, дайте мне знать
зарегистрировать представление
def register(request):
if request.method == "GET":
return render(
request, "users/register.html",
{"form": CustomUserCreationForm}
)
elif request.method == "POST":
form = CustomUserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect(reverse("dashboard"))
просмотр входа
from django.contrib.auth.views import LoginView
class customLoginView(LoginView):
pass
Самым простым способом входа пользователей в систему является использование Login View.