我正在尝试制作一个显示论坛网站上所有主板的页面,并根据第一个字母将它们分类为块。输出看起来像这样:
A
苹果
攻击
乙
香蕉
等...
{% regroup boards|dictsort:"name" by name.0 as item_letter %}
<ul>
{% for letter in item_letter %}
<h2>{{ letter.grouper|title }}</h2>
{% for i in letter.list|dictsort:"name" %}
<li>{{ i.name }}</li>
{% endfor %}
{% empty %}
<p><a href="/boards/new">Create a board</a></p>
{% endfor %}
</ul>
然而,有些电路板是固定的,应该出现在电池块的顶部:
A
(固定)攻击
苹果
等...
这里的主要问题是上面的代码会覆盖查询集的顺序(因为它当前设计为),并且固定项目不会出现在其块的顶部。我该如何重做呢?
boards = Board.objects.all().order_by('-pinned')
答案 0 :(得分:0)
您可以尝试传递2结果集而不是一个
boards_pinned = Board.objects.filter(pinned=True).order_by('name')
boards = Board.objects.filter(pinned=False).order_by('name')
然后像您在模板上所做的那样迭代boards_pinned
和boards