Объект 'AnonymousUser' не имеет атрибута '_meta' ошибка в функции Django Register
Я пытался сделать форму регистрации и входа, но получаю ошибку "'AnonymousUser' object has no attribute '_meta'". Как я могу решить эту ошибку. А также если у вас есть предложения по улучшению кода или лучшего способа для этой формы, я был бы счастлив. Вот мой views.py.
from django.shortcuts import render,redirect
from .forms import RegisterationForm
from django.contrib import messages
from django.contrib.auth import login as dj_login
from django.contrib.auth import authenticate
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import logout as dj_logout
def register(request):
if request.method == "POST":
form = RegisterationForm(request.POST)
if form.is_valid():
user = {
"username" : form.cleaned_data["username"],
"email" : form.cleaned_data["email"],
"password1" : form.cleaned_data["password1"],
"password2" : form.cleaned_data["password2"]
}
user = form.save()
dj_login(request,user)
messages.success(request,"Kayıt İşleminiz Başarıyla Gerçekleştirilmiştir.")
return redirect("index")
else:
messages.error(request,"Kayıt İşlemi Sırasında Bir Hata Meydana Geldi.")
return render(request,"register.html",context={"RegisterForm":form})
else:
form = RegisterationForm()
return render(request,"register.html",context={"RegisterForm":form})
А вот мой файл register.html.
{% extends 'layout.html' %}
{% load crispy_forms_tags %}
{% block title %}
Register
{% endblock title %}
{% block body %}
<h1>Register</h1>
<form method="post">
{% csrf_token %}
{{RegisterForm.username.label}}
{{RegisterForm.username}}
<br><br>
{{RegisterForm.email.label}}
{{RegisterForm.email}}
<br><br>
{{RegisterForm.password1.label}}
{{RegisterForm.password1}}
<br><br>
{{RegisterForm.password2.label}}
{{RegisterForm.password2}}
<br><br>
<button type="submit">Kayıt Ol</button>
</form>
{% endblock body %}
и это моя ошибка.
Environment:
Request Method: POST
Request URL: http://localhost:8000/users/register/
Django Version: 4.1.2
Python Version: 3.10.7
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
'crispy_forms',
'users']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "C:\Users\berke\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "C:\Users\berke\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\My Projects\My-Site\blog\users\views.py", line 22, in register
dj_login(request,user)
File "C:\Users\berke\AppData\Local\Programs\Python\Python310\lib\site-packages\django\contrib\auth\__init__.py", line 138, in login
request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
File "C:\Users\berke\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\functional.py", line 268, in inner
return func(_wrapped, *args)
Exception Type: AttributeError at /users/register/
Exception Value: 'AnonymousUser' object has no attribute '_meta'