python - django模板: include and extends

标签 python django django-templates

我想在 2 个不同的基础文件中提供相同的内容。

所以我正在尝试这样做:

page1.html:

{% extends "base1.html" %}
{% include "commondata.html" %}

page2.html:

{% extends "base2.html" %} 
{% include "commondata.html" %}

问题是我似乎无法同时使用扩展和包含。有没有办法做到这一点?如果没有,我该如何完成上述操作?

commondata.html 覆盖在 base1.html 和 base2.html 中指定的 block

这样做的目的是提供 pdf 和 html 格式的相同页面,其中格式略有不同。上面的问题虽然简化了我正在尝试做的事情,但如果我能得到答案,它将解决我的问题。

最佳答案

当你使用扩展模板标签时,你是说当前模板扩展了另一个模板——它是一个子模板,依赖于一个父模板。 Django 将查看您的子模板并使用其内容填充父模板。

您想在子模板中使用的所有内容都应该在 block 中,Django 使用它来填充父模板。如果您想在该子模板中使用 include 语句,您必须将它放在一个 block 中,以便 Django 理解它。否则它就没有意义,Django 也不知道如何处理它。

Django 文档中有一些非常好的使用 block 替换父模板中的 block 的示例。

https://docs.djangoproject.com/en/dev/ref/templates/language/#template-inheritance

关于python - django模板: include and extends,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408925/

相关文章:

django - 如何覆盖默认的 django 忘记密码模板?

python - Model.fit_generator 抛出运行时错误 :

django - 错误 ```禁止 (403) CSRF 验证失败。尝试登录管理员时请求中止 .`` `

python - 如何创建一个 3D 数组,其中第 k 个元素是一个 2x2 矩阵,我在向量中定义了系数

django - 在 Django 中动态设置默认表单值

Django 键盘中断

python - Django 将表迁移到新数据库

django - 显示页面项目在Django分页中的计数

python - 如何用python turtle画一个平铺的三角形

python - Django项目中 `from django.conf import settings`和 `import settings`有什么区别