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