gpt4 book ai didi

django - Django 子模板可以创建新 block 作为钩子(Hook)吗

转载 作者:行者123 更新时间:2023-12-01 22:41:36 25 4
gpt4 key购买 nike

我有以下场景:

基础.html:

{% block content %}{% endblock %}

child.html:

{% extends 'base.html' %}
{% block content %}
<p>Overriding content</p>
{% endblock %}
{% block child_block %}{% endblock %}

child_of_child.html:

{% extends 'child.html' %}
{% block child_block %}
<p>Overriding child</p>
{% endblock %}

在 child.html 中创建一个新 block child_block 并让 child_of_child.html 扩展 child.html 并覆盖此 block 不起作用,直到我还将 child_block 作为钩子(Hook)包含在 base.html 中。

是否不能在根模板之外创建新的模板 block / Hook ?如果是这样,有没有办法解决它而不必在 base.html 中包含所有可能的钩子(Hook)?

最佳答案

问题是您的 child_block block 不在 base.html 中的任何地方,因为它在现有 block 之外。渲染模板时它会出现在哪里?根本没有为它定义的地方。

子模板在其他 block 内定义 block 是完全可以的,然后由其他子模板填充。所以,例如:

{% extends 'base.html' %}
{% block content %}
<p>Overriding content</p>
{% block child_block %}{% endblock %}
{% endblock %}

工作得很好,你的结果将是:

<p>Overriding content</p>
<p>Overriding child</p>

关于django - Django 子模板可以创建新 block 作为钩子(Hook)吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12563828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com