依赖于会话变量的Django视图的回退

依赖于会话变量的Django视图的回退,django,django-views,django-sessions,Django,Django Views,Django Sessions,我有这样一个观点: 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))

我有这样一个观点:

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))
city = request.session.get('ciudad', 'default value')
现在,我使用会话变量“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/cartelra),然后他会得到一个错误,因为没有设置会话变量“ciudad”

如果尚未设置此会话变量,是否有方法为此会话变量创建默认值? 或者,处理此问题的最佳做法是什么?

如果未设置值,请使用会话上的方法检索默认值,如下所示:

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))
city = request.session.get('ciudad', 'default value')
如果未设置值,请使用会话上的方法检索默认值,如下所示:

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))
city = request.session.get('ciudad', 'default value')