对依赖session变量的Django视图的回退



我有一个视图,看起来像这样:

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')

相关内容

  • 没有找到相关文章

最新更新