在基本模板中分配模板标记

时间:2017-11-15 05:44:51

标签: django django-templates

我想在我的base.html模板中获取一个值,其他模板都会扩展。这是我的自定义代码:

#my_tags.py
from django import template

register = template.Library()

@register.simple_tag # or assignment tag, doesn't matter
def is_true():
    return True

当在base.html中使用时:

<!-- base.html -->
{% load my_tags %}
{% is_true %}

打印字符串“True”。但是,如果我尝试这样做

<!-- base.html -->
{% load my_tags %}
{% is_true as my_var %}
<h1>{{my_var}}</h1>

我在/'WSGIRequest'对象中得到TypeError不支持项目赋值。在堆栈跟踪之后,似乎“上下文”在base.html中不可用。如果我把它放在任何扩展基础的模板中,我可以分配变量并按照我的意愿打印它。赋值很重要因为我需要对返回的值进行条件化。这是as在基本模板中不起作用的已知限制吗?如何在base.html中获取返回的值?

0 个答案:

没有答案