DjangoのGenericViews(汎用ビュー)object_listでページ分割をする
投稿日:2006/08/25 04:36:27
過去の記事は移行時の問題により、画像が表示されなかったり、レイアウトが崩れたりしている可能性があります。
Tweet
久々の更新になってしまいました。最近ちょっと多忙です。
でも実はDjangoを実践投入できる仕事をもらったので、結構楽しんでます。
今日ちょっとやろうとしたことが解決できたので紹介しておきます。
GenericViewsのobject_listは、簡単にページ分割が実現できるようになってます。
ただ、↓こんな感じのものができなくて困ってました。
前へ 1 2 3 4 5 6 次へ
要するに、全ページへのリンクをはさみたかったんですよね。
はまったのが、ページ分割オプションで使えるようになるpagesという変数がintなので、
これを、range(pages)みたいにしてリストにしたいのですが、Djangoのテンプレート内では
これができません。Google GroupのDjango usersを調べてたら発見しました。
Pagination - displaying page numbers
rangeを使えるようにするパッチ作ってる人がいるからそれを使うか、
テンプレート内で変数をキャプチャできるものがあるからそれを使うかって感じでした。
パッチ使った方が手軽そうだったんで、そっちでやってみました。
デフォルトフィルターにrange0とrange1を追加するパッチ
http://code.djangoproject.com/ticket/1162
range0は0からインデックスを作るもので、range1は1からですね。
{% if has_previous %}前のページへ{% endif %} {% for page_number in pages|range1 %} {% ifnotequal page_number page %} {{ page_num }} {% else %} {{ page_number }} {% endifnotequal %} {% endfor %} {% if has_next %}次のページへ{% endif %}現在表示中のページはリンクしないようにしたりしてみました。 Djangoバンザイ!
- Posted at:
- 2006/08/25 04:36:27
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2006/08/25/django-tips-20060825/trackback/
TrackBacks
まだ登録されていません。
Comments
まだ登録されていません。