我试着根据一个简单的条件来表示偏导数。我的条件是assignment_tag是True还是False。
模板标签:
from django import template
register = template.Library()
@register.assignment_tag
def partner():
return False模板:
{% load partner_check %}
{% if partner %}
{% block header %}
{% include 'includes/partner_header.djhtml' %}
{% endblock header %}
{% block footer %}
{% include 'includes/partner_footer.djhtml' %}
{% endblock footer %}
{% endif %}无论我将partner设置为什么,这些块仍然会出现。我遗漏了什么?
发布于 2015-11-10 06:15:22
首先,这不是赋值标签的工作方式。您从未实际调用过标记;if partner引用了一个名为"partner“的(不存在的)模板变量。调用赋值标记的方法是将赋值标记本身与赋值给它的变量一起使用:
{% partner as partner_value %}
{% if partner_value %}...{% endif %}其次,这也不是块的工作方式。您不能动态定义块;它们是模板基本结构的一部分,而不是在计算过程中分配的东西。
发布于 2015-11-10 06:56:14
我通过使用context_processor (https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS)实现了这一点
上下文处理器:
def partners(context):
return {
'partner': False
}模板:
{% block header %}
{% if partner %}
{% include 'includes/partner_header.djhtml' %}
{% else %}
{{ block.super }}
{% endif %}
{% endblock header %}
{% block footer %}
{% if partner %}
{% include 'includes/partner_footer.djhtml' %}
{% else %}
{{ block.super }}
{% endif %}
{% endblock footer %}https://stackoverflow.com/questions/33619101
复制相似问题