dictsort 没有结果
Posted
技术标签:
【中文标题】dictsort 没有结果【英文标题】:dictsort gives no resuts 【发布时间】:2019-12-16 09:21:18 【问题描述】:我在视图中的 2 个地方使用了查询集 fields
。
一个按另一个字段排序,另一个按分面排序。我想在页面上以 2 种方式对数据集进行排序,而不是两次传递查询集。
我正在尝试使用dictsort 来执行此操作,正如here 和其他一些问题所概述的那样。
我的代码中有这个:
% for field in fields|dictsort:"facet_order" %
field.facet_order
% endfor %
但我没有看到任何渲染。
在没有dictsort
的情况下,循环可以正常工作,并且作为健全性检查,我已经运行以下没有问题:
% for field in fields %
field.facet_order
% endfor %
它产生:
None None None None 1 0 None ...
我的代码在我看来很像下面的 django 文档示例:
% for book in books|dictsort:"author.age" %
* book.title ( book.author.name )
% endfor %
我在这里做错了什么?
【问题讨论】:
【参考方案1】:要回答我自己的问题,我必须按照我找到的答案here 中所述注册一个自定义模板函数
我是按照here 概述的 djangos 示例完成的:
# Add templatetags/poll_extras.py
polls/
templatetags/
__init__.py
poll_extras.py
# Inside templatetags/poll_extras.py
from django import template
register = template.Library()
@register.filter
def sort_by(queryset, order):
return queryset.order_by(order)
# in the template:
% load poll_extras %
【讨论】:
以上是关于dictsort 没有结果的主要内容,如果未能解决你的问题,请参考以下文章