1

ユーザーが記事を読んでいるカテゴリから 10 個のエントリ タイトルを表示する django カスタム タグを作成したいと思います。これどうやってするの?実際のエントリからカテゴリを渡す必要があります。

4

3 に答える 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 に答える