ユーザーが記事を読んでいるカテゴリから 10 個のエントリ タイトルを表示する django カスタム タグを作成したいと思います。これどうやってするの?実際のエントリからカテゴリを渡す必要があります。
3183 次
3 に答える
8
これを行う最善の方法は、包含タグを使用することです。これは、10 件の関連記事をレンダリングするテンプレート フラグメントをレンダリングするタグです。
現在の記事をタグに渡し、テンプレート フラグメントのコンテキスト、つまり関連する記事を返すだけです。
@register.inclusion_tag('related_articles.html')
def related_articles(article, count):
category = article.category
articles = category.article_set.exclude(id=article.id)[:count]
return {'articles': articles}
記事を出力するテンプレート ディレクトリに related_articles.html ファイルが必要です。次に、メイン テンプレートから呼び出すには、次のようにします。
{% related_articles article 10 %}
article
記事オブジェクトの名前です。
于 2009-09-20T14:26:08.037 に答える
2
カスタムタグを使用する理由 アーティクル モデルにメソッドを追加し、それをテンプレートから呼び出す方が、おそらくよりクリーンです。モデルによっては、この方法はほとんど簡単です。
于 2009-09-20T04:40:07.020 に答える
1
カスタムタグの作成については、こちらをご覧ください:
http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#howto-custom-template-tags
関連するカテゴリ オブジェクトをテンプレート コンテキストに渡す必要があります。
于 2009-09-20T04:40:34.553 に答える