django包含带有循环变量的模板

Posted

技术标签:

【中文标题】django包含带有循环变量的模板【英文标题】:django include template with cycled variable 【发布时间】:2017-03-07 20:51:25 【问题描述】:

我有一个任务列表,其中包含任务类型组的标题。我正在尝试将任务行(最后一个 <tr>)移动到它自己的模板中:

% for task in tasks %

% ifchanged task.task_type %
<tr>
    <td colspan="5"><br><h3> task.task_type </h3></td>
</tr>
% endifchanged %
<tr class="% cycle 'active' '' as rowcolor %">
    ...
</tr>
% endfor %

我知道使用 CSS 制作交替的行颜色很容易,但这可能会使某些组标题行变成灰色,然后是白色行;我希望所有组标题行都是白色的,并且该组的后续行以灰色行开头。

我想要做的是将最后一个 &lt;tr&gt; 替换为

% include '_row.html' with rowcolor="% cycle 'active' '' %" %

但似乎% % 不能嵌套。在 rowcolor 值中使用 也不起作用。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

你可以试试:

% cycle 'active' '' as active_or_not silent %
% include '_row.html' with rowcolor=active_or_not %

希望对你有帮助

【讨论】:

啊,不知道silent 标志。谢谢! 在 Django 1.9(仅我测试过的版本)中,这不允许嵌套模板推进循环,只能访问当前值。

以上是关于django包含带有循环变量的模板的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 2.1 中的模板内的 for 循环内设置变量?

如何将带有上下文变量的 Django 模板发送到 Ajax 调用?

Django 模板语言:使用带有 else 的 for 循环

在Django模板中循环相关模型的孩子

Django:将带有 HTML 和 Django 模板标签的 Views.py 中的字符串变量注入 HTML 文件

Django templates 模板的语法