Django上下文处理器';匿名用户';对象是不可编辑的

Django上下文处理器';匿名用户';对象是不可编辑的,django,Django,我是Django新手,有下面的上下文处理器,它传递一些显示在标题中的数据。一切正常,直到用户注销,这将引导他们回到登录屏幕,但我得到下面的错误 这是密码 来自。模型导入作业 起始日期时间导入日期 def将变量添加到上下文(请求): 今天=日期。今天() 工程师作业=作业.objects.filter(日期到期时间=今天)。filter(分配给=请求.user) 工程师\u过期=0 对于工程师职位: 工程师\u逾期+=1 返回{ “工程师工作”:工程师工作, “工程师逾期”:工程师逾期, }

我是Django新手,有下面的上下文处理器,它传递一些显示在标题中的数据。一切正常,直到用户注销,这将引导他们回到登录屏幕,但我得到下面的错误

这是密码

来自。模型导入作业
起始日期时间导入日期
def将变量添加到上下文(请求):
今天=日期。今天()
工程师作业=作业.objects.filter(日期到期时间=今天)。filter(分配给=请求.user)
工程师\u过期=0
对于工程师职位:
工程师\u逾期+=1
返回{
“工程师工作”:工程师工作,
“工程师逾期”:工程师逾期,
}
然后我试了下面的方法

来自。模型导入作业
起始日期时间导入日期
def将变量添加到上下文(请求):
如果request.user.u经过身份验证:
今天=日期。今天()
工程师作业=作业.objects.filter(日期到期时间=今天)。filter(分配给=请求.user)
工程师\u过期=0
对于工程师职位:
工程师\u逾期+=1
返回{
“工程师工作”:工程师工作,
“工程师逾期”:工程师逾期,
}
但这显示了以下错误 有人能帮我找出哪里出了问题吗


谢谢,上下文处理器必须返回字典

当用户未登录时,您当前返回的是
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 {}