Eu tenho um projeto Django 4.2. Para um Templatetag extra eu criei este 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
No template HTML, tento capturar essa Tag em uma instrução IF , para exibir ajuda ao usuário, se necessário, assim:
<p>{% user_help %}</p>
{% if user_help %}
<h2>Some help text</h2>
{% endif %}
Embora a instrução p mostre True no modelo renderizado, a parte da condição If do modelo não é mostrada...?
O que estou entendendo errado aqui?
Os templates do Django têm uma distinção entre nomes de variáveis e tags de template, então você não pode simplesmente usar uma tag de template em uma
if
condição. Você precisa armazená-lo em uma variável auxiliar:Dito isto, não vejo por que você precisa de uma tag de modelo para isso, isso é equivalente a: