django - Django 中所有应用程序的基本模板

标签 django python-2.7

我有一个包含 2 个应用程序的项目

project/
    blog/
        templates/
            index.html
    polls/
        templates/
            index.html
    project/
        templates/
            base.html
            index.html

现在我希望这两个应用程序扩展项目 base.html .这是要走的路吗?这怎么可能,是否有更好的解决方案?

已经有一个问题正在处理这个问题,但只有在您不使用拆分目录时才值得一提:
Django project base template

tl; dr:我想使用拆分目录并想知道如何从多个应用程序扩展基本模板而不将其复制到每个应用程序

最佳答案

在当前的 Django (1.10) TEMPLATE_DIRS is deprecated , 所以:

  • 添加 templates项目根目录下的目录,
  • 在 settings.py 中找到 TEMPLATES -> DIRS 并像这样添加它:
    TEMPLATES = [
    {
        ...
        'DIRS': [(os.path.join(BASE_DIR, 'templates')),],
        ...
    }
    
  • 将 base.html 添加到该目录。
  • 使用 {% extends 'base.html' %} 将其扩展到您想要的任何位置
  • 关于django - Django 中所有应用程序的基本模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492617/

    相关文章:

    python - 将单个变量从一个 python 程序传递到另一个程序

    python - 如何正确解析右括号

    python - 如何编写用于下载的python脚本?

    django - 将 gettext 的 .mo 文件保存在 repo 中的好处

    django 使用 django-registration 以 html 格式发送电子邮件

    python - 使用 Python 转储 PostgreSQL 数据库模式

    python - 如何在 python 中对字符串使用格式说明符

    Django IPython sqlite 提示幼稚的日期时间

    python - 从模型中引用 Django 登录名

    javascript - 在 django 模板中嵌入 javascript 代码