【问题标题】:Two apps extend from the same base.html in Django两个应用程序从 Django 中的同一个 base.html 扩展而来
【发布时间】:2016-04-02 14:09:42
【问题描述】:

我有两个应用程序。两者都有 index.html 扩展的不同 base.html 模板。尽管每个应用程序的 index.html 都不同。

但由于某种原因,它只能从带有 base.html 的同一个应用程序扩展而来?这怎么可能?

在我的两个 index.html 模板中都是这样的:

{% extends 'base.html' %}

【问题讨论】:

    标签: django


    【解决方案1】:

    您的template/ 目录结构是如何设置的?如果index.html 模板扩展自base.html,Django 将选择您根模板目录中的base.html

    解决方案: 将您的base.html 模板之一重命名为base2.html 之类的名称并将其与base1.html 一起放入templates/,或者在templates/ 中创建新目录以放入base.html 文件。

    对于解决方案 A,请确保在相应的 index.html 模板中将 {% extends base.html %} 更改为 {% extends base2.html %}

    对于解决方案 B,您的 base.html 文件将保持相同的名称,但位于不同的目录中。所以一个是templates/base1/base.html,另一个是templates/base2/base.html。您的index.html 文件将扩展为{% extends base1/base.html %}{% extends base2/base.html %}。请注意,所有扩展路径都相对于您选择的模板目录的根目录。

    IMO 解决方案 B 更好,因为它将每个模板库的代码分隔到不同的、明确命名的文件夹中。将来为您提供更好的组织/灵活性和更少的混乱。

    【讨论】:

    • 如果我有不同的 base.html 用于不同的应用程序,我们可以将各自的基础放在该特定应用程序的模板根目录中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多