Django-模板标签方法
Posted
技术标签:
【中文标题】Django-模板标签方法【英文标题】:Django- Template Tag Approach 【发布时间】:2016-03-02 16:59:34 【问题描述】:如果存在特定类别,我正在尝试找出一种打印类别标题的方法。我遇到的问题是,由于我通过 for 循环浏览我的文章,如果类别存在,我不能只发布标题,否则它将多次打印出该标题。例如:
% for x in todays_articles %
% with x.categories.all as categories %
% for category in categories %
% if category.title == "nfl" %
<p><H1>NFL:
<p>x.title category
% endif %
% if category.title == "nba" %
<p>x.title category
% endif %
% endfor %
% endwith %
将多次打印出 NFL/NBA。我可以复制并粘贴多次。
<P>NFL:
% for x in todays_articles %
% with x.categories.all as categories %
% for category in categories %
% if category.title == "nfl" %
<p>x.title category
并为每个类别执行此操作。我只是想知道是否有更聪明的方法。谢谢。
【问题讨论】:
您可以先循环搜索类别,然后循环搜索文章吗? 【参考方案1】:我不是 100% 确定你在这里做什么,但我认为你想要 % ifchanged %
模板标签。
【讨论】:
【参考方案2】:您可以考虑使用表格标签,然后在两个不同的列中打印 NFL 和 NBA 的结果。如果您需要,我可以进一步详细说明!
【讨论】:
【参考方案3】:如果我理解正确,您的模板中似乎有一段代码需要重复多次。
为此,您可以使用模板include。
但是,如果您的项目已经按类别排序,您可能只想使用 ifchanged
标记,正如 Daniel Roseman 指出的那样。如果您的项目未按类别排序,您可能希望在视图代码中或通过单独的数据库查询拆分这些项目,并将它们作为单独的变量注入到您的模板中。
【讨论】:
以上是关于Django-模板标签方法的主要内容,如果未能解决你的问题,请参考以下文章