python - 在 Django 中创建可重复使用的模板

标签 python django templates

问题 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/

相关文章:

python - 计算 ZeroMQ 套接字中的连接数

python - gensim安装的问题

python - 编写python包在django内部和外部运行

c++ - 如何返回映射到可变参数位置的类型

python - 在 Python 中获取网站描述的最佳方法是什么?

python - 在代码中嵌入 python 模块

python - 如何在 python Flask 中验证 html 表单?

python - Django 日期时间字段验证错误 : value has an invalid format

python - 验证 ModelForm 时出现问题

c++ - 基于返回类型的转换和重载扣除