【问题标题】:How to get /test/?grid-view or /test/?list-view' in Django view如何在 Django 视图中获取 /test/?grid-view 或 /test/?list-view'
【发布时间】:2012-05-26 14:30:02
【问题描述】:

我有一个可以通过 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> 等。可能有更好的方法来做到这一点,因此也欢迎任何建议。

【问题讨论】:

    标签: django django-views django-urls


    【解决方案1】:

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

    【讨论】:

      【解决方案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/'):
      # ...
      

      【讨论】:

      • 链接<a href="/?list_view/>list view</a> 的键是list_vew/ 而不是list_view
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多