0

我正在尝试以某种父/子方式对查询结果进行排序。我想知道是否有一种简单的方法可以做到这一点。

目的:

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]

...

有没有办法在查询集中实现这种父/子组排序?

4

2 回答 2

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 %}
于 2012-01-29T00:13:54.717 回答
0

您需要使用django-mptt,它将为您解决这个问题。

来自维基百科的有关 MPTT 的更多信息

于 2012-01-30T11:26:59.973 回答