gpt4 book ai didi

django - 如何在 Django 管理中对外键过滤器的 list_filter 标签进行排序?

转载 作者:行者123 更新时间:2023-12-02 00:47:02 24 4
gpt4 key购买 nike

django admin 中外键过滤器的 List_filter 标签始终按 id 排序,当列表中有很多过滤器时,这可能会导致困惑。

一段时间以来,我一直在寻找简单的解决方案,如何按字母顺序或按日期对这些标签进行排序。似乎除了使用 FilterSpec 之外没有解决方案。

直到我这样做。

我已经更改了filter.html的模板(将其放在模板目录的admin文件夹中),所以它看起来像这样(我猜是在django片段中的某个地方找到的):

{% load i18n %}
<h3>{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
<div align="right">
<select onChange="javascript:window.location = this.options[this.selectedIndex].value;" style="width: 80%">
{% for choice in choices %}
<option {% if choice.selected %}selected{% endif %} value="{{ choice.query_string|iriencode }}">
{{ choice.display }}
</option>
{% endfor %}
</select>
</div>

然后我在 for 循环上使用了 'dictsort:"name"' 模板标签,所以模板最终看起来像这样:

{% load i18n %}
<h3>{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
<div align="right">
<select onChange="javascript:window.location = this.options[this.selectedIndex].value;" style="width: 80%">
{% for choice in choices|dictsort:"display" %}
<option {% if choice.selected %}selected{% endif %} value="{{ choice.query_string|iriencode }}">
{{ choice.display }}
</option>
{% endfor %}
</select>
</div>

因为我有很多标签,所以我使用了选择下拉菜单,但它也可以在标准“ul”列表上使用。现在,我终于将所有基于外键的过滤器按字母顺序排序(即使使用日期它也有效)。

如果您需要反向给药,可以使用 dictsortreversed 模板标签。

希望这对某人有帮助。

最佳答案

呃,问题本身就包含了答案。很抱歉没有更好地构建它。

关于django - 如何在 Django 管理中对外键过滤器的 list_filter 标签进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com