その9 - 掲示板ひとだんらく。
前回までの機能では、最新の10件分しか見ることができませんでした。
これだと、書込が多くなってきたときに寂しいのでページ処理をつけました。
これによって、10件以上あっても見ることができるようになります。
if self.request.get('akey').strip() != "": existcheck = db.GqlQuery ( "SELECT * FROM Article WHERE akey=:1", self.request.get('akey').strip()) if existcheck.count() <= 0:
akeyが設定されていて、そのakeyがデータストア内に存在するかどうかをチェックしています。
ブラウザで戻ったあとに送信ボタンが押されたときの対処なので、根本的な多重チェックとは違いますがないよりはマシかとつけてあります。
next_page = self.request.get('next') if next_page.strip() != "" and next_page.isdigit(): article_start = int(next_page) - 1 max_size = db.Query(Article).count() next_p = prev_p = 0 if article_start < 0 or article_start > max_size: article_start = 0 if max_size > article_start + article_limit: next_p = article_start + article_limit + 1 if article_start >= article_limit: prev_p = article_start - article_limit + 1
ページ処理。URLの後ろにパラメータをつける形(GET)で指定を行います。
3つある判定のうち最初のヤツはあり得ない数値が来たときのための対処。
2つは次のページ、3つめは前のページの処理。
'prev' : prev_p, 'next' : next_p,
テンプレートへパラメータを渡すための登録。
設定された変数に応じて、次のページや前のページというリンクを作っています。