1

我想制作一个 django 自定义标签来显示用户正在阅读文章的类别中的 10 个条目标题。我怎样才能做到这一点?我需要从实际条目中传递类别。

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 回答