【发布时间】:2021-07-27 07:47:30
【问题描述】:
在我的上下文处理器.py 文件中,我根据用户过滤表。这一切都很好:
def subject_renderer(request):
return {"Calicount": Tools_Calibrated.objects.filter(
user=request.user, calibrated=True, issued=True).count(),
}
当我注销并尝试重新登录时出现问题。因为登录时没有经过身份验证的用户,我无法在上下文处理器中调用查询。
问题:为什么我的上下文处理器函数在我没有调用登录视图模板中的键时被调用。我知道如何使用模板来解决这个问题,但我想知道如何使用上下文处理器来解决它。基本上从一个角度省略它。
提前谢谢你
【问题讨论】:
-
向我们展示完整的错误回溯!
-
上下文处理器总是被应用,即使你没有使用
Calicount。然后,处理像 Willem Van Onsem 这样的不受欢迎的案例就是要走的路。 -
另外,有一个你不想在任何地方应用的逻辑似乎比上下文处理器更好地使用标签 (docs.djangoproject.com/en/3.2/howto/custom-template-tags/…)