问题 1:
所以我正在为 Django 中的电子邮件制作模板。我的电子邮件中有一个表格,我需要将格式设置到表格的每一行中,因为一些电子邮件客户端要求所有 CSS 样式都是内联的。因此,我创建了一个模板来实现表格行,并为每一行使用 with
调用它。
行模板
<tr style="blahblah">
<td>{{ description}}</td>
<td>{{ value}}</td>
</tr>
然后我就可以这样调用模板了
{% include 'included_template.html description=some_context_var value=some_other_var %}
世界上一切都很好,直到我需要上下文变量以外的其他东西进入其中一个表格单元格。就我而言,我需要像这样以日期格式重新格式化 DateTimeField:
{{ create_date| date:"N j, Y" }}
上面的工作正常,但是当我这样做的时候:
{% include "included_template.html" with description="Date:" value=create_date| date:"N j, Y" %}
我得到一个错误:
django.template.base.TemplateSyntaxError: Could not parse the remainder: '|' from 'invoice.create_date|'
问题 2:
在某些情况下,我想将多个值组合到一个单元格中,例如:
Hi {{first_name}} {{last_name}}
有什么方法可以返回到父模板来渲染主体,或者在模板中组合我需要的变量以传递给包含的模板?我可以将所有这些东西添加到上下文中,但它不太适合我,尤其是因为我需要的日期格式函数在 python 端似乎不可用。
最佳答案
问题 1:
虽然这有效:
{{ create_date| date:"N j, Y" }}
其实应该是这样的(注意在date
之前去掉了空格):
{{ create_date|date:"N j, Y" }}
有了这个改变,下面的应该可以工作了:
{% include "included_template.html" with description="Date:" value=create_date|date:"N j, Y" %}
问题 2:
你可以使用 Django 的 built-in template tags
{% with full_name=first_name|add:" "|add:last_name %}
Hi {{ full_name }}
{% endwith %}
一个警告:如果您对两个数字使用 add
,您将得到总和,而不是串联。
关于python - 在 Django 中创建可重复使用的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947927/