【发布时间】:2011-05-09 18:11:52
【问题描述】:
在整合第三方 django 应用程序时,我通常希望它与我的 django 项目的其余部分在美学上相结合。虽然这通常是覆盖应用程序“base.html”(如果那样的话)的问题,但我们的模板结构都略有不同,因此经常出现不兼容问题。例如,假设一个应用程序定义了{% block footer %},并在其模板中将其用于各种事情。如果我已经将{% block footer %} 用于导航栏或版权信息,我不希望应用的模板覆盖我的阻止。
一个更简单的相关案例是对同一事物使用不同的块名称。例如,{% block extra-head %} 与 {% block extrahead %}。
解决此类情况的最佳方法是什么?理想情况下,重新映射块会很好,因此您可以执行诸如“将孩子的{% block footer %} 放入父母的{% block content-footer %}”之类的操作。有什么办法可以接近吗?还是只是简单地覆盖每个冲突模板的唯一解决方案?
【问题讨论】:
标签: python django templates inheritance extensibility