我的观点如下:
def CineByCiudad(request):
city = request.session["ciudad"]
cines = Cine.objects.filter(ciudad=city)
context = {'cines': cines}
return render_to_response('cine-ciudad.html', context, context_instance=RequestContext(request))
现在,我正在使用会话变量“ciudad”来过滤我的查询。 在我网站的主页上,我让用户设置他们的“ciudad”,一旦设置我将其重定向到另一个页面,他们就可以开始根据他们的城市(“ciudad”)查看内容。
我的主页会检查会话是否包含项目:
def index(request):
#Checks to see if the session has items, in particular if a city has been set
if not request.session.items():
return render_to_response('index.html', context_instance=RequestContext(request))
else:
return redirect(Cartelera)
现在让我们假设用户出于某种原因删除了他的cookie,并且在网站上他访问了与主页不同的网址(比如www.site.com/cartelera),然后他会收到错误,因为会话变量“ciudad”没有设定。
有没有办法为此会话变量创建默认值,以防它尚未设置? 或者处理这个问题的好习惯是什么?
答案 0 :(得分:1)
如果未设置值,请在会话中使用dict.get方法检索默认值,如下所示:
city = request.session.get('ciudad', 'default value')