我只想在子模板中定义body标签的id属性。第一个解决方案非常有效:

base.html:

[body{% block bodyid %}{% endblock %}]

child.html:

{% block bodyid %} id="myId"{% endblock %}

这很简单,很酷!但我不想指出id =" myId"在每个儿童模板中。我想将值'myId'发送到父模板,在那里它放到id =" ...."。所以,我发明了这个方法:

base.html文件:

[body{% block bodyid %} id={{ bodyid }}{% endblock %}]

child.html:

{% block bodyid %}
    {% with 'myId' as bodyid %}
        {{ block.super }}
    {% endwith %}
{% endblock %}

但是比较第一个解决方案是非常糟糕和乏味的。有没有什么好方法可以做到这一点?

这个问题比管理bodyId更深入。我想,我试图通过标准的django模板继承来查找和组织子模板系统。

有帮助吗?

解决方案

在基本模板中:

<body id="{% block bodyid %}{% endblock %}">

在子模板中:

{% block bodyid %}myId{% endblock %}

如果我理解你的问题,这应该足以实现你想要的;仅将实际ID( myId )发送到基本模板。

其他提示

如果您愿意,可以通过代码设置 - 这样您的id就是上下文对象的一部分,因此不需要在子模板中输入,只需要调用它们的视图。

然后,您可以告诉您的基本模板从上下文对象中获取id,或者只是使用模板语法:

<body id="{{ body_id }}">

这里的个人偏好当然,这取决于你的模板和视图的结构,但它取决于我的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top