【发布时间】:2016-12-21 18:23:03
【问题描述】:
我的基本模板的头部有一个块,它将呈现“额外”的 CSS。此 CSS 将根据来自 Wagtail CMS 实例的字段进行自定义。
所以,在base.html 模板中我有:
<head>
{% block extra_css %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
</body>
然后,在我的detail.html 模板中,它从基础延伸出来,我有:
{% block content %}
{% for block in page.body %}
{{ block }}
{% endfor %}
{% endblock %}
body 是 Wagtail 中的 StreamField。其中一个字段是自定义StructBlock,其模型设置如下:
class CalloutBlock(blocks.StructBlock):
accent_color = blocks.CharBlock(required=False, label='Accent Color', help_text='HEX Value/Color')
class Meta:
template = 'inc/blocks/callout.inc.tpl'
最后,在那个callout.inc.tpl 模板中,我试图渲染一个<style> 标签,应该 将其注入我的extra_css 块中:
{% block extra_css %}
<style>
.accent_color {
background-color: {{accent_color}} !important;
}
</style>
{% endblock %}
但是,这个块并没有像我预期的那样注入<head>。相反,它在正文中呈现,就像 {% block extra_css %} 标记根本不存在一样:
<head>
</head>
<body>
<style>
.accent_color {
background-color: {{accent_color}} !important;
}
</style>
</body>
仅仅是 Django 模板的限制吗?嵌套是问题吗?还是因为我在模型级别使用了自定义模板,而这超出了父模板解析的范围?
Django:1.10
鹡鸰:1.6
【问题讨论】:
标签: python css django templates wagtail