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

fec*_*ert 15 django python-2.7

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

project/
    blog/
        templates/
            index.html
    polls/
        templates/
            index.html
    project/
        templates/
            base.html
            index.html
Run Code Online (Sandbox Code Playgroud)

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

已经有一个问题正在处理这个问题,但是如果你使用拆分目录,那就值得一提: Django项目基础模板

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

Oli*_*osa 28

在当前的Django(1.10)中,不推荐使用TEMPLATE_DIRS,因此:

  1. templates在项目根目录添加目录,
  2. settings.py中找到TEMPLATES - > DIRS并像这样添加:

    TEMPLATES = [
    {
        ...
        'DIRS': [(os.path.join(BASE_DIR, 'templates')),],
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. base.html添加到该目录.

  4. 随时随地扩展它 {% extends 'base.html' %}

  • 对我来说它有效但是:'DIRS':['templates'], (4认同)

rne*_*ius 6

  1. templates在项目根目录中添加目录,并将其添加到您的TEMPLATE_DIRS设置中.
  2. base.html添加到该目录.
  3. 随时随地扩展它 {% extends 'base.html' %}

  • 摆脱正斜线. (4认同)