附加到站点<;标题>;在Django模板中使用block.super
我有3个Django模板: base.html附加到站点<;标题>;在Django模板中使用block.super,django,block,super,Django,Block,Super,我有3个Django模板: base.html <title>{% block title %} SITE NAME {% endblock %}</title> {% extends "base.html" %} {% block title %} {{ block.super }} - SECTION NAME {% endblock %} {% extends "default.html" %} {% block title %} {{ block.super
<title>{% block title %} SITE NAME {% endblock %}</title>
{% extends "base.html" %}
{% block title %} {{ block.super }} - SECTION NAME {% endblock %}
{% extends "default.html" %}
{% block title %} {{ block.super }} {% endblock %}
{% extends "default.html" %}
{% block title %} {{ block.super }} - MAIN{% endblock %}
main.html
<title>{% block title %} SITE NAME {% endblock %}</title>
{% extends "base.html" %}
{% block title %} {{ block.super }} - SECTION NAME {% endblock %}
{% extends "default.html" %}
{% block title %} {{ block.super }} {% endblock %}
{% extends "default.html" %}
{% block title %} {{ block.super }} - MAIN{% endblock %}
我想在templatemain.html中获取站点名称,即父块的父级内容。差不多
{{ block.super.super }}
这可能吗?我认为这不可能。就你的具体问题而言,我想如果你将站点名称放在块之前,并使用块只是在站点名称后面附加一些东西,那么它是可以解决的 否则,您可以在
settings.py
中定义SITE\u NAME
,并使用类似的上下文处理器
from django.conf import settings
def site_name(request):
return {'SITE_NAME': settings.SITE_NAME}
这样您就可以在模板中使用
{{SITE_NAME}}
,这可能是有意义的,因为站点名称也可以在其他地方使用…注意,Django 1.2.3似乎已经满足了您的要求。假设SITE_NAME是通过lzerscience所示的context_预处理器公开的,block.super应该通过所有继承层公开它
main.html
<title>{% block title %} SITE NAME {% endblock %}</title>
{% extends "base.html" %}
{% block title %} {{ block.super }} - SECTION NAME {% endblock %}
{% extends "default.html" %}
{% block title %} {{ block.super }} {% endblock %}
{% extends "default.html" %}
{% block title %} {{ block.super }} - MAIN{% endblock %}
这将为我显示标题“站点名称-节名-主”。Django 1.6.6
{{block.super.super}
-可能
我现在试试——工作:)
但不是正式的