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))
如果会话['user']不存在,我希望它静默失败,或者返回False或Null。
因为密钥在会话中不存在,所以我得到一个KeyError。
任何想法是如何解决这个问题的?
答案 0 :(得分:3)
您可以通过以下方式获取None
这样的默认值:request.session.get('user', None)
。就像普通的Python dicts一样。
答案 1 :(得分:3)
user = request.session.get('user', None)
,或者
user = None
if 'user' in request.session:
user = request.session['user']
答案 2 :(得分:0)
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