我有一个视图,看起来像这样:
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,并且在他访问的网站上访问了一个与主页不同的url(例如www.site.com/cartelera),他将得到一个错误,因为会话变量"ciudad"没有设置。
有没有办法为这个会话变量创建一个默认值,以防它没有被设置?或者处理这个问题的好方法是什么?
使用字典。如果未设置该值,则在会话上获取默认值,如下所示:
city = request.session.get('ciudad', 'default value')