我有一个看起来像这样的视图:
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”没有设置.
有没有办法为这个会话变量创建一个默认值,以防它没有被设置?或者什么是处理这个问题的好习惯?