タグ付け#3

タグに関する以前の投稿のコメントに質問があるので、このメモを書くように勧められました。 質問者だけでなく興味深いものになると思います。

タグに感謝しますが、質問はすぐに熟します-タグにタグを付けるにはどうすればよいですか? はい、リクエストされたタグを持つオブジェクトを選択することを教えます




URLにタグ処理を追加するのは簡単です。たとえば、 「/ tag / TAG_NAME /」という形式のURLを使用できます





次に、Djangoアプリケーションのurls.py ファイルで、ハンドラーパターンを記述する必要があります。

  urlpatterns =パターン( ''、
 ...
 (r '^ tag /(?P <tag_id> \ w +)/ $'、 'myapp.views.items_list')、
 ...




urlリクエストはビュー( MVCアーキテクチャの手順) items_listによって処理されることが理解されています

#------------------------------------------------- -----------------------------

def items_list(リクエスト、tag_id =なし):

「アイテムのリスト。 ページネーション付きのアイテムを表示し、tag_idが指定されている場合-タグでアイテムをフィルタリング»

initial = {}#検索フォームの初期フィルター

num_per_page = 10

page = int(request.GET.get( 'page'、 '1'))

tag_idの場合:

アイテム= TaggedItem.objects.get_intersection_by_model(Item、(tag_id、))

その他:

items = Item.objects.all()

#ページネーション

paginator = ObjectPaginator(アイテム、num_per_page)

試してください:

items = paginator.get_page(ページ1)

InvalidPageを除く:

ページ= 1

items = paginator.get_page(ページ1)

内容= {

「アイテム」:アイテム、

「ページネーター」:ページネーター、

「Current_page」:ページ、

「ページ」:範囲(1、paginator.pages + 1)、

Tag_id:tag_id、

}

render_to_response( "items_list.html"、コンテンツ、context_instance = RequestContext(リクエスト))を返します





以上です。 上記の例では、プロシージャはアイテムのリスト全体の出力も処理し、さらにページネーションも実行されます(ページネーション)。




All Articles