Django - 如何在页面上更改搜索结果的排序顺序?

Posted

技术标签:

【中文标题】Django - 如何在页面上更改搜索结果的排序顺序?【英文标题】:Django - How do I change the sort order of search results while still on the page? 【发布时间】:2019-12-11 05:44:48 【问题描述】:

我有一个用户搜索结果的列表,我希望用户能够重新排序 如他们所愿。在后端对查询集进行预排序很简单,views.py 这是每个 Google 搜索提出了该主题。但我需要由用户完成。在前端。 这是 通常使用下拉菜单完成,其中包含允许按字母顺序 A-Z 排序或按添加日期排序等选项。

我无法通过 Google 搜索或涵盖该问题的单个教程找到答案,但我发现它几乎无处不在。 解决方案是否涉及 ajax?我将如何使用 ajax 来做到这一点?在 Django 中是否有一个 py 模块可以做到这一点?

我正在呈现类似这样的搜索结果

% for stor in stories %
  <div>
    <span class="story_block stock_bg">
       <a href="stor.get_absolute_url">
       <div class="story_con_block">
       <p class="s_t">stor.title</p>
       <p>by <strong>stor.author.username</strong></p>
       <p>stor.summary</p>
     </div>
    </a>
  </span>
</div>
% endfor %

【问题讨论】:

【参考方案1】:

如果您使用 javascript 呈现列表,则可以使用 javascript 来完成。由于 javascript 可以操作 DOM,因此您可以使用 javascript 代码对其进行排序,并将点击事件添加到这些排序函数中

【讨论】:

排序所需的结果信息位于各个模型对象中。我将如何使用 javascript 访问它? javascript click 事件如何访问 django 查询集对其进行排序?你能发布一个例子或指出一些我可以研究的例子吗? ***.com/questions/739942/… 看看这个

以上是关于Django - 如何在页面上更改搜索结果的排序顺序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 的同一页面上返回结果?

如何在新页面中显示 django 搜索结果

如何根据用户组更改 Django 模板?

在 Django/PostgreSQL 搜索结果页面上突出显示搜索词

Django - 如何在不刷新页面的情况下保持在同一页面上?

更改列表页面上的 django admin 附加字段