在Django视图中如何获取/ test /?grid-view或/ test /?list-view' [英] How to get /test/?grid-view or /test/?list-view' in Django view

查看:88
本文介绍了在Django视图中如何获取/ test /?grid-view或/ test /?list-view'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个页面,可以通过列表或网格视图通过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')
如果grid_view:
返回render_to_response('grid_view.html',{},context_instance = RequestContext(请求))
elif list_view:
return render_to_response('list_view.html',{},context_instance = RequestContext(request))
else:
返回render_to_response('default_view.html',{ },context_instance = RequestContext(request))

然后在我的主模板中,我会指出不同的视图到< a href =/?list_view />列表视图< / a> 等。可能有更好的方法来做任何建议,太。

解决方案

一个空字符串被评估为False,这就是你的GET请求Query String参数将包含的。



您可以将代码修改为:

 如果grid_view在request.GET或'grid_view /'请求中.GET:
pass
elif'list_view'in request.GET或'list_view /'in request.GET:
pass

或:

  if request.GET.has_key('grid_view')或request.GET.has_key('grid_view /'):
#...


I have a page that can be viewed by list or grid view through jQuery, but I want the URL to display what view it is -- especially when user paginate so that they don't have to reclick what they want to view -- so something like this: /test/?grid_view or /test/?list_view.

I've been trying to use request.GET.get, but it doesn't seem to be working. Here is what I have so far:

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

Then in my main template I'd point the different views to <a href="/?list_view/">list view</a>, etc. There is probably a better way to do it so any suggestions are appreciated too.

解决方案

An empty string is evaluated to False and, that is what your GET request Query String parameters will contain.

You could modify your code to:

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

Or:

if request.GET.has_key('grid_view') or request.GET.has_key('grid_view/'):
# ...

这篇关于在Django视图中如何获取/ test /?grid-view或/ test /?list-view'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆