【问题标题】:Fallback for Django view that relies on session variable依赖会话变量的 Django 视图的后备
【发布时间】:2013-01-05 01:51:37
【问题描述】:

我的视图如下所示:

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”未设置。

有没有办法为这个会话变量创建一个默认值,以防它没有被设置? 或者有什么好的做法来处理这个问题?

【问题讨论】:

    标签: django django-views django-sessions


    【解决方案1】:

    如果未设置值,则在会话中使用dict.get 方法检索默认值,如下所示:

    city = request.session.get('ciudad', 'default value')
    

    【讨论】:

      猜你喜欢
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      相关资源
      最近更新 更多