首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django assignment_tag条件

Django assignment_tag条件
EN

Stack Overflow用户
提问于 2015-11-10 06:03:29
回答 2查看 227关注 0票数 0

我试着根据一个简单的条件来表示偏导数。我的条件是assignment_tagTrue还是False

模板标签:

代码语言:javascript
复制
from django import template

register = template.Library()


@register.assignment_tag
def partner():
    return False

模板:

代码语言:javascript
复制
{% 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设置为什么,这些块仍然会出现。我遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2015-11-10 06:15:22

首先,这不是赋值标签的工作方式。您从未实际调用过标记;if partner引用了一个名为"partner“的(不存在的)模板变量。调用赋值标记的方法是将赋值标记本身与赋值给它的变量一起使用:

代码语言:javascript
复制
{% partner as partner_value %}
{% if partner_value %}...{% endif %}

其次,这也不是块的工作方式。您不能动态定义块;它们是模板基本结构的一部分,而不是在计算过程中分配的东西。

票数 1
EN

Stack Overflow用户

发布于 2015-11-10 06:56:14

我通过使用context_processor (https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS)实现了这一点

上下文处理器:

代码语言:javascript
复制
def partners(context):
    return {
        'partner': False
    }

模板:

代码语言:javascript
复制
{% 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 %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33619101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档