У объекта 'AnonymousUser' нет атрибута '_meta' | Django
Возникает ошибка при аутентификации пользователя,
КОД
settings.py
AUTH_USER_MODEL = 'Authentication.User'
AUTHENTICATION_BACKENDS = (
('django.contrib.auth.backends.ModelBackend'),
('Authentication.auth.CustomAuthEmailBackend.EmailAuthBackend'),
)
Custom Backend
from django.contrib.auth.models import User
from django.contrib.auth.backends import BaseBackend
class EmailAuthBackend(BaseBackend):
def Authenticate(self, request, email, password):
try:
user = User.objects.get(email=email)
success = user.check_password(password)
if success:
return user
except User.DoesNotExist:
pass
return None
def get_user(self, uid):
try:
return User.objects.get(pk=uid)
except:
return None
views.py
user_id = 1
password = *******
user = User.objects.get(pk=user_id)
user.unique_username = unique_username
userid = int(user_id)
user.custom_user_id = createUserUnqiueId(userid)
user.is_active = True
useremail = user.email
user.save()
user = auth.authenticate(request, email=useremail, password=password, backend='Authentication.auth.CustomAuthEmailBackend.EmailAuthBackends')
auth.login(request, user, backend='Authentication.auth.CustomAuthEmailBackend.EmailAuthBackend')
return redirect('index')
ОБЪЯСНЕНИЕ КОДА
- Работа с логином по электронной почте путем переопределения логина имени пользователя.
- Затем в аутентификации я написал пользовательскую аутентификацию, но иногда она работает нормально, а по умолчанию выдает ошибку, а иногда пользовательская аутентификация back-end выдает ошибку, а аутентификация back-end по умолчанию работает нормально. Почему?
- Также, если бэкэнд аутентификации работает нормально на localhost, он выдает ошибки после загрузки на панель C.
ОШИБКА
AttributeError at /auth/activate/Mjc/atr5z0-1d1d9f0050ff97fec5e766fd2418b520/s%2523f%253FO%253E%2560!c%257CK-0B92
'AnonymousUser' object has no attribute '_meta'
Request Method: POST
Request URL: http://app.barter.monster/auth/activate/Mjc/atr5z0-1d1d9f0050ff97fec5e766fd2418b520/s%252523f%25253FO%25253E%252560!c%25257CK-0B92
Django Version: 3.2.7
Exception Type: AttributeError
Exception Value:
'AnonymousUser' object has no attribute '_meta'
Exception Location: /home4/barter/virtualenv/Barter/3.8/lib/python3.8/site-packages/django/utils/functional.py, line 247, in inner
Python Executable: /home4/barter/virtualenv/Barter/3.8/bin/python3.8
Python Version: 3.8.6
Python Path:
['',
'/opt/alt/python38/bin',
'/home4/barter/Barter',
'/home4/barter/virtualenv/Barter/3.8/lib64/python38.zip',
'/home4/barter/virtualenv/Barter/3.8/lib64/python3.8',
'/home4/barter/virtualenv/Barter/3.8/lib64/python3.8/lib-dynload',
'/opt/alt/python38/lib64/python3.8',
'/opt/alt/python38/lib/python3.8',
'/home4/barter/virtualenv/Barter/3.8/lib/python3.8/site-packages']
Server time: Wed, 29 Sep 2021 20:00:14 +0000