0

所以我正在使用 django 构建一个应用程序。我团队中的一些人认为我应该在模板中使用包含,而不是遵循块/扩展范例。他们认为:

  • 对于未来的维护者来说,继承是太多的逻辑
  • 包含更容易遵循
  • 我们不应该将未来的维护限制在“django 程序员”身上

我真的不想破坏我的应用程序的模板,所以我试图提出一些令人信服的理由(对于非 django 用户)来说明为什么继承确实是前进的方向。我很想听听对此的更多看法。

我已经想出了几个原因:

  • 更干燥。确保样板 html 结构只需要在一个地方定义;模板不同步的风险大大降低

  • 保留属于模板、模板和视图之外的内容;例如:

    <title>{% block title %}My Website{% endblock %}</title>

    对比

    <title>{{ pagetitle }}</title>

    这使前端维护者可以更好地控制前端,而无需深入研究后端视图

  • 前端编码人员已经必须熟悉从基本/覆盖默认值扩展的继承概念;考虑以下CSS:

    .nav {
      color: blue;
    }
    
    .nav.active {
      color: purple;
    }
    

有什么好的推理可以加入其中吗?

4

1 回答 1

0

使用继承可以更容易(至少恕我直言)创建主 base.html 模板并让所有其他页面extends使用它。这使得所有布局/样式都在该文件中指定,其余的只是以标准化方式使用id标签class

最好记住extends(以及include)的参数可以是变量。我们templates/base.html是一行:

{% extends base_template %}

wherebase_template在我们的主上下文处理器中设置。这与更改的简单管理小部件一起session.base_template,允许我们的设计师创建多个布局并通过单击在它们之间切换。她绝对喜欢它。

于 2012-05-04T04:14:38.087 回答