2009/06/25

paginate_by

やっぱ色々手を抜けたらいいなと思いまして、generic view 素敵に違いないと信じつつ
沢山のデータが出てくるときも「次へ」とかクリックできる仕組み、あったらいいな
で〜、Django で何だっけそれって思って昔写経したの見たら paginate_by と書いてあり
よーし、と思ってとりあえずググりました

しかし、検索語が悪いようで最初の方は心ときめくもんが出てきません
9 位が 2007-01-25 - SumiTomohikoの日記
とりあえずここに書いてあることがあれば私には十分でした
でも、ドキュメントの和訳が 1 ページ目に出ないとはまだまだだぞ Google
14 位に出てはきたんだけど
http://djangoproject.jp/doc/ja/1.0/_sources/ref/generic-views.txt
こっち出すの? そうなの?

で、まぁ paginate はできるようになりました

でもね、いま SQLAlchemy 使ってるの
これでも paginate できるのかしら?
で、ググ、らなかったんですね、今度は、ソース見てみました

django.views.generic.list_detail.object_list は
queryset って名前で model から作った query 引き受けるんですが
そしたら Paginator とやらに渡してるから今度は django.core.paginator.Paginator
眺めると、とりあえず slice できれば良さそうだったんで SQLAlchemy でもいいかな?
って思って SQLAlchemy の Query 突っ込んだら、怒られました
'Query' object has no attribute 'model'
おぉ
template の名前作るのに model の名前を使ってるらしい
けど template は object_list で指定してやればいいので
object_list(request, queryset, template_name='app/list.html')
的なことをしてやり
動いちゃいました

3 日後くらいには「やっぱ generic view 死ね」とか言ってるかもしれませんが
とりあえず動いたんで良かった
Pylons とか夢想しただけで済んで良かった
Python には Query のガイドラインとかもあるんだろうか?

0 件のコメント:

コメントを投稿