我有Django 1.8.13。只有当用户通过身份验证时,我才需要来自我自己的上下文处理器的变量。我的上下文处理器:
def comment_rew(request):
context_dict = {}
if request.user.is_authenticated():
user = request.user
user_rew = user.review_set.all().count()
context_dict['user_rew'] = user_rew
return(context_dict)
当用户未通过身份验证时,它会返回一个空字典,这会导致错误(因为上下文处理器无法返回空字典)。是否只有在用户经过身份验证的情况下才可以使用上下文处理器?
不能根据用户的身份验证状态启用/禁用上下文处理器。
当用户未通过身份验证时,您可以将上下文变量user_rew
的值设置为None
:
def comment_rew(request):
context_dict = {'user_rew': None}
if request.user.is_authenticated():
user = request.user
user_rew = user.review_set.all().count()
context_dict['user_rew'] = user_rew
return context_dict