我正在尝试以某种父/子方式排序查询结果。我想知道是否有一个简单的方法来实现这一目标。
对象:
Video : [id, parent_id, date] // where parent_id can be null - meaning it is a 'root' node.
我想要的查询集排序:
Video 1: [123, null, 01/11]
Video 2: [111, 123, 02/11]
Video 3: [144, 123, 04/11]
Video 4: [191, null, 03/11]
Video 5: [118, 191, 03/11]
Video 6: [121, 191, 05/11]
Video 7: [411, null, 04/11]
...
有没有办法在查询集中实现这种父/子组排序?
答案 0 :(得分:0)
如果您需要在模板级别使用此功能,可以使用regroup
模板标记对查询集重新排序:
https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#regroup
{% regroup videos by parent_id as group %}
{% for video in group %}
{{ video.grouper }}
{% for child in group.list %}{{ child }}{% endfor %}
{% endfor %}
答案 1 :(得分:0)
您需要使用django-mptt,这将为您解决此问题。
的MPTT的更多信息