【问题标题】:Django - order existing search results according to user choicesDjango - 根据用户选择对现有搜索结果进行排序
【发布时间】:2015-12-31 07:07:06
【问题描述】:

我正在创建一个允许最终用户搜索条目的 Django (1.8) Web 应用程序。我已经设法让用户根据他们的输入获得搜索结果。

但是,我也希望用户能够在结果返回后,根据用户对某些选项的选择(例如按距离排序、按评分排序、按价格排序)对搜索结果进行排序。我无法实现这一点,因为我无法弄清楚这背后的逻辑。

有人可以告诉我如何实现这样的功能吗?非常感谢!

【问题讨论】:

  • 只做 .order_by('filedname')

标签: python django filter django-queryset


【解决方案1】:

最简单的方法是.order_by('fieldname')。 在您的模板中,您可以有指向添加 GET 参数的同一页面的链接。在您的视图中检查这些参数并决定如何对结果进行排序。 会有点像这样

Model.objects.filter(field='value').order_by('sort-criteria')

【讨论】:

  • 总是乐于提供帮助:)
  • 嗨雷斯利!谢谢你上次回复!一路上我遇到了一个小问题。您说在模板中我可以链接到添加 GET 参数的同一页面。如何获取视图中请求新页面的页面的 URL?我搜索了很多来源。有些人建议使用 HTTP 标头引用。这是正确的方向吗?谢谢你雷斯利!
  • request.pathrequest.get_full_path() 将为您提供当前页面的路径(即域之后的所有内容)。通常这应该足够了。 request.path 在视图和模板中都有效。通常对于指向同一页面的链接,直接传递 GET 查询就足够了,无需任何实际链接,但我建议查找遵循的正确做法。
猜你喜欢
  • 2021-04-06
  • 2021-08-19
  • 1970-01-01
  • 2013-04-28
  • 2011-11-30
  • 2021-01-23
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
相关资源
最近更新 更多