1
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
    <li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>

上記のコードは、フラットページを含む単純な順序付けられていないリストをレンダリングします。「url」プロパティのアルファベット順ではなく、各フラットページの「index」プロパティを使用して並べ替えたいと思います(デフォルトで行われます)。

4

2 に答える 2

3

フラットページのコアモデルを変更することはできません (すべきではありません) ので、継承することができます:

CustomFlatpage(Flatpage)
    # Possible extra fields, add methods or your own object manager
    class Meta:
         ordering = ['somefield']

単純化したアプローチが必要な場合は、クエリセットを (再) ソートする templatetag を記述できます。これによりオーバーヘッドが発生する可能性がありますが、サイトのトラフィックが多いか、何千ものフラットページが含まれていない限り、これで問題ありません。

{% 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>
于 2012-07-16T09:04:36.907 に答える
3

sort filter を書くか、使用してみてください

dictsort

または、django 割り当てタグを記述します。

于 2012-07-16T09:39:48.113 に答える