¿Hay un filtro de plantilla en django que recorte cualquier espacio en blanco inicial o posterior del texto de entrada.filtro de plantilla para recortar cualquier espacio en blanco inicial o final
Algo así como: {{ var.example|trim }}
¿Hay un filtro de plantilla en django que recorte cualquier espacio en blanco inicial o posterior del texto de entrada.filtro de plantilla para recortar cualquier espacio en blanco inicial o final
Algo así como: {{ var.example|trim }}
Usted puede hacerlo usted mismo
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def trim(value):
return value.strip()
Django templates le permiten acceder a los métodos y propiedades mediante el uso de la ''. Sintaxis:
{{ var.example.strip }}
Se puede extender este encadenando otros filtros cuando se está tratando con HTML, por ejemplo:
{{ var.example.strip|safe|removetags:"p img" }}
Aquí se retire primero cualquier <p>
y <img>
etiquetas, luego decirle a Django que puede de manera segura renderiza el resto del contenido, que hemos despojado de cualquier espacio en blanco.
¿Está documentado o es un truco no oficial? – Medorator
No es función de Django, sino de Python. Está documentado aquí: https://docs.python.org/2/library/stdtypes.html#str.strip. Documentación de las variables de plantilla de Django: https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek
un comentario: el filtro 'removetags' se está eliminando a partir de django 1.10, por lo que tenga cuidado – Jerzyk
Cualquier persona que visite aquí debe ver la solución de Ibatteau, que es mucho más simple: simplemente use .strip dentro de la plantilla (no es necesario registrar un nuevo filtro). – bryn
Usar '{{var.example.strip}}' es realmente más simple, sin embargo, esta solución aquí también tiene su uso. Por ejemplo, le permite hacer '{% filter trim%} {% someothertag%} {% endfilter%}', que de otro modo no es posible. – jlh