姜戈.只有当用户通过身份验证时,我才需要来自我自己的上下文处理器的变量



我有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

相关内容

  • 没有找到相关文章

最新更新