如果要覆盖django中应用程序随附的模板(在app / templates / app /中),请在另一个目录中创建相同名称的模板,模板加载器会在应用程序的模板目录之前检查该模板。如果您只想覆盖模板的某些块,则还必须复制整个模板广告,更改该块,这实际上不是很干。
有人知道一种方法来覆盖原始模板,同时扩展它,以便您只需要覆盖要更改的特定块吗?(这样做是在不更改模板名称的情况下进行的,因为在某些情况下,您可能必须更改视图才能使其与其他模板一起使用)
我认为这个相关问题的答案是恰当的。当前,最好的解决方案似乎是使用PyPI上django-apptemplates包中的自定义模板加载器,因此你可以使用pip进行安装(例如pip install django-apptemplates
)。
模板加载器允许你在特定应用中扩展模板;例如,要扩展管理界面的索引页,你可以添加
'apptemplates.Loader',
到中的TEMPLATE_LOADERS
列表settings.py
,然后使用
{% extends "admin:admin/index.html" %}
问题内容: 如何覆盖管理模板(例如admin / index.html),同时扩展它(请参阅https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing -an-admin-template)? 首先-我知道这个问题已经被问过并回答过(请参阅Django:覆盖和扩展应用程序模板),但是正如答案所示,
问题内容: 如何覆盖管理模板(例如admin / index.html),同时扩展它(请参见https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing -an-admin-template)? 首先-我知道这个问题已经被问过并回答过(请参阅Django:覆盖和扩展应用程序模板),但是正如答案所示,
问题内容: 我正在尝试使用Swift协议扩展,却发现这种行为令人困惑。您能帮我得到我想要的结果吗? 请参阅代码最后4行的注释。(如果需要,可以将其复制粘贴到Xcode7游乐场)。谢谢!! 问题答案: 简短的答案是协议扩展不执行类多态性。这是有一定道理的,因为协议可以被结构或枚举采用,并且因为我们不希望仅在没有必要的地方采用协议来引入动态调度。 因此,在中,实例变量(可能更准确地写为)并不意味着您认
问题内容: 我想在2个不同的基本文件中提供相同的内容。 所以我正在尝试这样做: page1.html: page2.html: 问题是我似乎无法同时使用扩展和包含。有什么办法吗?如果没有,我该如何完成以上工作? commondata.html覆盖base1.html和base2.html中指定的块 这样做的目的是提供pdf和html格式的同一页面,但格式略有不同。上面的问题虽然简化了我要尝试做的事
问题内容: 我是django的新人。 我想创建一个自定义窗口小部件。 forms.py: widget.py: project / widgets / filter.html: 但是它不会呈现新模板,而是仍然呈现旧方法。 你能给我一些提示吗? 问题答案: Django版本 <1.11: 小部件必须实现该方法才能呈现不同的模板: Django 1.11版: 在渲染器的文档中,我们可以找到以下内容:
我正在Django上做类似ERP的小项目,其中包含不同的应用程序(产品、销售、采购、会计、MRP、...)。其中一些有依赖关系(例如,销售应用程序需要产品应用程序)。 继承或抽象类似乎也是不合适的,因为我不是试图为子产品创建模型,而是在表中现有信息(条目)的基础上进行增长或扩展。 实现这一点的最佳方法是什么?我应该考虑编写自定义迁移操作吗?否则,还有更好的办法吗?谢谢!