0

を含めると、同じページにpaginator複数印刷されます。paginatorに含めているからですforloop。この問題を解決するにはどうすればよいですか? 助けてください

----------------------
{% autopaginate recipes %}
{% for recipe in recipes %}
  {{ forloop.counter }}
{% endfor %}
-----------

これが私の完全なコードです。

{% with followers=current_user.get_profile.get_following.all %}
    {% for follower in followers %}
        {% with recipes=follower.recipe_set.all %}
            {% for recipe in recipes %}
                {{ forloop.counter }}
            {% endfor %}
        {% endwith %}
    {% endfor %}
{% endwith %}

結果 - > 1 2 3 1 2 3 ...... 50. である必要があります53。だから私は簡単に使うことができますpaginator

ありがとう

4

1 に答える 1

0

django-paginationの setup.py ファイル内のドキュメント文字列には、以下が記載されています。

  1. ページ分割する変数を決定し、その変数を反復処理する前にその変数に autopaginate タグを使用します。これは、次の 2 つの形式のいずれかを取ることができます (canonicalobject_list を変数の例として使用)。

    {% autopaginate object_list %}

これは、デフォルトで 1 ページあたり 20 件の結果が必要であることを前提としています。ページごとの結果の独自の量を指定したい場合は、次のように指定できます。

   `{% autopaginate object_list 10 %}`

これはobject_list現在のページのリストに置き換えられるため、object_list通常と同じように反復できることに注意してください。

  1. ここで、現在のページと利用可能なページを表示したいので、autopaginate を使用した後のどこかで、paginate 包含タグを使用します。

    {% paginate %}

これには引数はありませんが、既に autopaginate を呼び出していることを前提としているため、必ず最初に呼び出してください。

それでおしまい!これでページ分割が完了object_listし、サイトのユーザーがさまざまなページ間を移動できるようになりました。すべてビューに触れる必要はありません。

では、autopaginate の後に paginate タグをどこで使用していますか? 実際には、レシピをループする必要はありません。paginate を呼び出す場所はどこでも autopaginate がそれを行う必要があります。

于 2012-05-03T10:30:06.080 に答える