Что означает ошибка AttributeError в /login_user/?
Моя цель - получить все товары, которые пользователь добавил в корзину, поэтому я решил получить модель ShopingCart из контекстного процессора. Я добавил ее в контекстный процессор, и она хорошо работает. Но проблема в том, что когда я пытаюсь выйти из системы, то получаю ошибку. Где собственно возникла проблема? помогите мне😢...
models.py:
class ShopingCart(models.Model):
User = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='UserShoppingCartRelatedName',on_delete=models.CASCADE)
Product = models.ForeignKey(Products, related_name='ShoppingCartRelatedName',on_delete=models.CASCADE)
context_processors:
def ShoppingCart(request):
return {"ShoppingCart":request.user.UserShoppingCartRelatedName.all()}
error:
AttributeError at /login_user/
'AnonymousUser' object has no attribute 'UserShoppingCartRelatedName'
Request Method: GET
Request URL: http://127.0.0.1:8000/login_user/
Django Version: 4.0.4
Exception Type: AttributeError
Exception Value:
'AnonymousUser' object has no attribute 'UserShoppingCartRelatedName'
Exception Location: D:\1_WebDevelopment\17_Ecomerce Website\ecomerce site\env\lib\site-packages\django\utils\functional.py, line 259, in inner
Python Executable: D:\1_WebDevelopment\17_Ecomerce Website\ecomerce site\env\Scripts\python.exe
Python Version: 3.9.5
Python Path:
['D:\\1_WebDevelopment\\17_Ecomerce Website\\ecomerce site',
'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39\\python39.zip',
'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39\\DLLs',
'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39\\lib',
'c:\\users\\dcl\\appdata\\local\\programs\\python\\python39',
'D:\\1_WebDevelopment\\17_Ecomerce Website\\ecomerce site\\env',
'D:\\1_WebDevelopment\\17_Ecomerce Website\\ecomerce '
'site\\env\\lib\\site-packages']
Server time: Tue, 09 Aug 2022 11:48:23 +0000
Похоже, что вы не вошли в систему!
'AnonymousUser' object has no attribute 'UserShoppingCartRelatedName'
AnonymousUser - это имя по умолчанию для человека не вошедшего в систему!
Проверьте, не является ли пользователь никем и аутентифицирован.
def ShoppingCart(request):
if request.user is not None and request.user.is_authenticated():
return {"ShoppingCart":request.user.UserShoppingCartRelatedName.all()}
else:
return {}