{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>
上面的代码将呈现一个包含平面页面的简单无序列表。我想使用每个平面页面的“索引”属性对它们进行排序,而不是按“url”属性的字母顺序(默认情况下)。
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>
上面的代码将呈现一个包含平面页面的简单无序列表。我想使用每个平面页面的“索引”属性对它们进行排序,而不是按“url”属性的字母顺序(默认情况下)。
由于您不能(不应该)更改平面页面的核心模型,您可以继承它:
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>