{% if bCat2 == True %}
<div>True</div>
{% else %}
<div>False</div>
Devuelve <div>False</div>
incluso cuando bCat2
es True
. Gracias, Andrew¿Por qué la lógica de mi condición no funciona como se esperaba en Jinja2/CherryPy?
{% if bCat2 == True %}
<div>True</div>
{% else %}
<div>False</div>
Devuelve <div>False</div>
incluso cuando bCat2
es True
. Gracias, Andrew¿Por qué la lógica de mi condición no funciona como se esperaba en Jinja2/CherryPy?
Para probar una variable booleana en una plantilla, la convierten en una cadena en Python
str(bCat2)
y luego se compararon con una cadena en la plantilla
{% if bCat2 == 'True' %}
<div>True</div>
{% else %}
<div>False</div>
Este parte de la documentación puede ayudarlo:
Las constantes especiales verdadero, f alse y ninguno son de hecho minúsculas. Debido a que esto causó confusión en el pasado, cuando se escribe True expande a una variable indefinida que se considera falsa, los tres se pueden escribir también en el título (Verdadero, Falso y Ninguno). Sin embargo, para la consistencia de (todos los identificadores de Jinja son minúsculas) debe usar las versiones en minúsculas .
Fuente: http://jinja.pocoo.org/docs/templates/
probar ese código:
{% if bCat2 == true %}
<div>True</div>
{% else %}
<div>False</div>
{% endif %}
Esta debe ser la respuesta correcta. Iterar sobre una lista grande y cambiar cada bool a cadena según la respuesta aceptada puede ser costoso si la lista es grande y queremos enviar la lista grande a la plantilla. –