作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果在块之外声明“with”标签,则它似乎不起作用,如下所示:
{% extends 'base.html' %}
{% with my_var=1 %}
{% block test1 %}
{{my_var}}
{% endblock %}
{% block test2 %}
{{my_var}}
{% endblock %}
{% endwith %}
最佳答案
我是通过在 Jinja2 中使用 Tornado 来到 Django 的,由于无法设置 (a) 可以在模板中定义的变量(不是 View )和 (b) 可以在它派生的基本模板中使用,我被逼疯了.查看来自 django-libs 的一小段四行代码,我能够组装出这样的东西,效果很好。以下是应出现在各个块中的标题字符串示例。
设置.py -- 添加到模板 (Django 1.10+)
TEMPLATES = {
...
builtins = ['mysite...wherever...templatetags',]
}
from django import template
register = template.Library()
@register.simple_tag(takes_context=True)
def setvar(context, key, value):
context.dicts[0][key] = value
return ''
{% block settings %}
{% comment %}
Put this at the TOP of the template before
any blocks that use variables.
{% endcomment %}
{% endblock settings %}
<html>
<head><title>{{title}}</title></head>
<body><h1>My Site: {{title}}</h1>
{% block body %}
{% endblock body %}
</body></html>
{% extends "base.html" %}
{% block settings %}
{{ block.super }} {% comment %}optional{% endcomment %}
{% setvar 'title' 'Menu' %}
{% endblock %}
{% block body %}
<ul><li>Fish</li><li>Steak</li></ul>
{% endblock %}
关于Django:在 block 外带有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661667/
我是一名优秀的程序员,十分优秀!