我有一个 Django 4.2 项目。为了额外的 Templatetag,我创建了这个 simple_tag。
@register.simple_tag(takes_context=True)
def user_help(context):
# True if HELP is ON for user
u = context['request'].user
if u.needs_help:
return True
else:
return False
在 HTML 模板中,我尝试在 IF 语句中捕获该标记,以便在需要时向用户显示帮助,如下所示:
<p>{% user_help %}</p>
{% if user_help %}
<h2>Some help text</h2>
{% endif %}
虽然 p 语句在渲染的模板中显示True ,但模板的If 条件部分未显示...?
我在这里犯了什么错?
Django 模板区分变量名和模板标签,因此您不能只在条件中使用模板标签
if
。您需要将其存储在辅助变量中:话虽这么说,我真的不明白为什么你需要一个模板标签,这相当于: