私は 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 ファイルごとに常に TemplateView が必要ですか?
私のファイルは次のようになります: (私はそれらを少し単純化しました)
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 %}