Django 在基础模板中指定模板标记

Django 在基础模板中指定模板标记,django,django-templates,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 -->

我想在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 %}

{%load my_tags%}
{%is_true%}
将打印字符串“True”。然而,如果我尝试这样做

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

{%load my_tags%}
{%u作为我的变量%u是真的}
{{my_var}}

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

我认为这与标记的位置无关。看起来您很困惑,因为您的一个视图还传递了一个同名变量(
is\u true
)作为上下文变量。我不确定,但尝试使用{%with myvar=is\u true%}@Selcuk is\u true只是我的一个最小示例。它也可以是
函数\u abc
。是否向“父”模板传递了不同的上下文?如果我们查看django的源代码,当存在目标变量时,错误就会出现。我认为这与标记的位置无关。看起来您很困惑,因为您的一个视图还传递了一个同名变量(
is\u true
)作为上下文变量。我不确定,但尝试使用{%with myvar=is\u true%}@Selcuk is\u true只是我的一个最小示例。它也可以是
函数\u abc
。是否向“父”模板传递了不同的上下文?如果我们查看django的源代码,当存在目标变量时,错误就会出现。