代码之家  ›  专栏  ›  技术社区  ›  dotty

上下文处理器,通过不存在的会话

  •  1
  • dotty  · 技术社区  · 14 年前

    Hay-ALL,我有一个简单的上下文处理器,它在一个会话内,如果存在一个“用户”键。如果需要,我想将其返回到模板。

    def get_user_details(request):
        user = request.session['user']
        data = {
            'user':user
        }
        return data
    

    下面是一个示例视图

    def render_home(request):
        return render_to_response("home", context_instance=RequestContext(request))
    

    如果会话[用户]不存在,我希望它安静地失败,或者返回false或null。

    你知道怎么解决这个问题吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   Jochen Ritzel    14 年前

    您可以获得如下默认值 None 这种方式: request.session.get('user', None) . 就像普通的Python指令一样。

        2
  •  3
  •   Dave Aaron Smith    14 年前
    user = request.session.get('user', None)
    

    或者,

    user = None
    if 'user' in request.session:
        user = request.session['user']
    
        3
  •  0
  •   Steven Rumbalski    14 年前
    def get_user_details(request):
        try:
            user = request.session['user']
        except KeyError:
            return
        data = {
            'user':user
        }
        return data
    

    def render_home(request):
        try:
            return render_to_response("home", context_instance=RequestContext(request))
        except KeyError:
            return