0

我对 Django 很陌生,并试图用嵌套模板继承来重新组织我的模板结构。

我所拥有的是:

  • base.html
    • child1.html
    • child2.html
    • child3.html

每个孩子扩展 base.html 并拥有自己的带有上下文的 TemplateView。即使使用离线压缩,这也有效

现在我添加了另一层:

base.html

  • base_a.html
    • child1.html
  • base_b.html
    • child2.html
    • child3.html

此时我应该补充一点,base_a 和 base_b 没有自己的 TemplateView,但需要上下文中的值。我以为我只能像这样构造我的代码,并且它在没有离线压缩的情况下工作得很好。但是通过压缩,除了base.html,我得到了“错误解析模板”。我猜这要么是因为 css,要么是因为 base_a 和 base_b 没有模板视图并且可能不知道上下文?

所以我的问题是:有没有办法让这段代码工作?我是否总是需要每个 html 文件的 TemplateViews?

我的文件看起来像这样:(我简化了一点)

base.hmtl:

  {% load compress %}
  {% load static %}
  (some meta stuff here)
  <head>
     (some stylesheets here)
     {% compress css %}
        {% block css %}
           {# Placeholder for subpage specific css #}
        {% endblock css %}
     {% endcompress %}
  </head>
  <body>
     {% block subnavigation %}
     {% endblock %}

     {% block filter %}
     {% endblock %}

     {% block content %}
     {% endblock %}
  </body>

base_a.html:

  {% extends 'base.html' %}
  {% load static %}
  {% block subnavigation %}
      <div>
          {{some_context_value}}
      </div>
  {% endblock %}

child1.html:

  {% extends './base_a.html' %}
  {% load static %}

  {% block filter %}

  <div>
     {{ another_context_value }}
  </div>

  {% endblock %}

  {% block css %}
     (some css here)
  {% block css %}

  {% block content %}
     (some more html here)
  {% block css %}
4

0 回答 0