San*_*4ez 12 django block super
我有3个Django模板:
base.html文件
<title>{% block title %} SITE NAME {% endblock %}</title>
Run Code Online (Sandbox Code Playgroud)
default.html中
{% extends "base.html" %}
{% block title %} {{ block.super }} - SECTION NAME {% endblock %}
Run Code Online (Sandbox Code Playgroud)
main.html中
{% extends "default.html" %}
{% block title %} {{ block.super }} {% endblock %}
Run Code Online (Sandbox Code Playgroud)
我想在模板main.html中获取SITE NAME,即父块的父级内容.就像是
{{ block.super.super }}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
注意,Django 1.2.3似乎已经做了你想要的.假设SITE_NAME通过像lzerscience说明的context_preprocessor公开,block.super应该通过所有继承层公开它.
main.html中
{% extends "default.html" %}
{% block title %} {{ block.super }} - MAIN{% endblock %}
Run Code Online (Sandbox Code Playgroud)
这为我显示标题"网站名称 - 部分名称 - 主要".
我认为这是不可能的。对于您的具体问题,我想如果您将站点名称放在块之前,并使用块只是将一些内容附加到站点名称,则可以解决它。
SITE_NAME否则,您可以在您的中定义settings.py并拥有一个上下文处理器,例如
from django.conf import settings
def site_name(request):
return {'SITE_NAME': settings.SITE_NAME}
Run Code Online (Sandbox Code Playgroud)
这样您就可以{{ SITE_NAME }}在模板中使用 - 这可能是有意义的,因为站点名称在其他地方也可能有用......
| 归档时间: |
|
| 查看次数: |
8939 次 |
| 最近记录: |