{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>
上面的代码将呈现一个包含flatpages的简单无序列表。我想使用每个flatpage的“index”属性对它们进行排序,而不是按“url”属性的字母顺序排序(默认情况下这样做)。
答案 0 :(得分:3)
答案 1 :(得分:2)
由于您不能(不应该)更改flatpages的核心模型,您可以继承它:
CustomFlatpage(Flatpage)
# Possible extra fields, add methods or your own object manager
class Meta:
ordering = ['somefield']
如果你想要一个简化的方法,可以写一个(重新)排序你的查询集的模板标签。这可能会导致一些开销,但除非您的网站流量很大或包含数千个平面页,否则这应该没问题。
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages|your_pre_iteration_shuffle %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>