0

我有一个可以通过jQuery通过列表或网格视图查看的页面,但我希望URL显示它是什么视图 - 特别是当用户分页时,他们不必重新单击他们想要查看的内容 - 所以像这样的东西:/test/?grid_view/test/?list_view

我一直在尝试使用request.GET.get,但它似乎不起作用。这是我到目前为止所拥有的:

def test (request):
    grid_view = request.GET.get('grid_view')
    list_view = request.GET.get('list_view')
    if grid_view:
        return render_to_response('grid_view.html', {}, context_instance=RequestContext(request))
    elif list_view:
        return render_to_response('list_view.html', {}, context_instance=RequestContext(request))
    else:
        return render_to_response('default_view.html', {}, context_instance=RequestContext(request))

然后在我的主模板中,我会将不同的视图指向<a href="/?list_view/">list view</a>等。可能有更好的方法来做到这一点,因此任何建议也受到赞赏。

4

2 回答 2

2

一个空字符串被评估为 False,这就是您的 GET 请求查询字符串参数将包含的内容。

您可以将代码修改为:

if 'grid_view' in request.GET or 'grid_view/' in request.GET:
    pass
elif 'list_view' in request.GET or 'list_view/' in request.GET:
    pass

或者:

if request.GET.has_key('grid_view') or request.GET.has_key('grid_view/'):
# ...
于 2012-05-19T09:20:59.980 回答
0

这不是 GET 参数。用于request.META['QUERY_STRING']获取查询字符串。

于 2012-05-19T05:03:53.730 回答