![](/img/trans.png)
[英]Context processor ('AnonymousUser' object is not iterable)
[英]Django context processor 'AnonymousUser' object is not iterable
我是 Django 的新手,並且有下面的上下文處理器,它傳遞了一些顯示在 header 中的數據。 在用戶注銷之前一切正常,這應該將他們引導回登錄屏幕,但是我收到以下錯誤。
這是代碼
from . models import Job
from datetime import date
def add_variable_to_context(request):
today = date.today()
engineers_jobs = Job.objects.filter(date_due__lte = today).filter(assigned_to=request.user)
engineer_overdue = 0
for job in engineers_jobs:
engineer_overdue += 1
return {
'engineers_jobs': engineers_jobs,
'engineer_overdue':engineer_overdue,
}
然后我嘗試了以下
from . models import Job
from datetime import date
def add_variable_to_context(request):
if request.user.is_authenticated:
today = date.today()
engineers_jobs = Job.objects.filter(date_due__lte = today).filter(assigned_to=request.user)
engineer_overdue = 0
for job in engineers_jobs:
engineer_overdue += 1
return {
'engineers_jobs': engineers_jobs,
'engineer_overdue':engineer_overdue,
}
謝謝
上下文處理器必須返回一個字典。
當用戶未登錄時,您當前返回None
,您應該返回一個空字典
from . models import Job
from datetime import date
def add_variable_to_context(request):
if request.user.is_authenticated:
today = date.today()
engineers_jobs = Job.objects.filter(date_due__lte = today).filter(assigned_to=request.user)
engineer_overdue = 0
for job in engineers_jobs:
engineer_overdue += 1
return {
'engineers_jobs': engineers_jobs,
'engineer_overdue':engineer_overdue,
}
return {}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.