【问题标题】:Django : How to structure template folder considering template tag includes?Django:如何构造模板文件夹考虑模板标签包含?
【发布时间】:2012-02-27 04:56:41
【问题描述】:

我的模板文件夹与所有 html templates 一起位于模板文件夹中,没有这样的目录结构。

我决定根据每个应用来安排它们,但是:

  • 带有模板标签的模板属于不同的应用程序。

例如: 登录页面(登录应用程序)包含属于 UserActivity [用户活动应用程序] 的横幅。因此,如果我在模板的登录文件夹中包含登录模板,那么它将包含其他应用程序模板文件夹中的内容。

我应该如何组织以使所有被提及的内容都集中在一个地方?

随时询问更多信息.. :)

【问题讨论】:

    标签: python django model-view-controller templates django-templates


    【解决方案1】:

    在子目录中组织你的模板绝对是他们要走的路,但我不确定你是否真的能达到你正在寻找的分离水平。 如果您的应用程序相互依赖,您将始终拥有来自其他应用程序的包含和标签。所以我会把模板放到它们所属的应用程序中。

    但也许有关 template loaders 的文档可以帮助您澄清您的结构。

    例如app_directories.Loader

    从文件系统上的 Django 应用程序加载模板。对于每个应用程序 INSTALLED_APPS,加载器查找模板子目录。如果 目录存在,Django 会在其中查找模板。

    这意味着您可以将模板与您的各个应用程序一起存储。这 还可以轻松分发带有默认模板的 Django 应用程序。

    因此,您可以将特定于应用程序的模板放在您的应用程序目录中,并将您的通用模板(base.html 等)保留在项目的顶级模板目录中。

    【讨论】:

    • 还有另一件事可能有助于将事情分开:docs.djangoproject.com/en/dev/howto/custom-template-tags/… 所以您可以编写一个简单的标签“render_login_form”并将其与您的登录应用程序捆绑在一起,因此将标签/表单的 html 保留在您的登录应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2014-05-03
    • 2013-06-05
    • 2015-02-03
    • 2016-08-12
    • 2018-02-22
    • 2013-02-13
    相关资源
    最近更新 更多