Esiste un filtro modello in django che ridurrà gli spazi bianchi iniziali o finali dal testo di input.per tagliare gli spazi iniziali iniziali o finali
Qualcosa di simile: {{ var.example|trim }}
Esiste un filtro modello in django che ridurrà gli spazi bianchi iniziali o finali dal testo di input.per tagliare gli spazi iniziali iniziali o finali
Qualcosa di simile: {{ var.example|trim }}
È possibile farlo da soli
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def trim(value):
return value.strip()
Django templates consentono di accedere metodi e proprietà utilizzando la '' sintassi:
{{ var.example.strip }}
è possibile estendere questo concatenando altri filtri quando hai a che fare con l'HTML, ad esempio:
{{ var.example.strip|safe|removetags:"p img" }}
Qui prima rimuovere eventuali <p>
e <img>
tag, poi dire Django si può tranquillamente rendere il resto del contenuto, che abbiamo spogliato di qualsiasi spazio bianco.
È documentato o è un trucco non ufficiale? – Medorator
Non è una funzione di Django, ma di Python. È documentato qui: https://docs.python.org/2/library/stdtypes.html#str.strip. Documentazione delle variabili del modello Django: https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek
un commento - il filtro 'removetags' viene rimosso dal django 1.10, quindi fai attenzione – Jerzyk
Chiunque visita qui dovrebbe guardare la soluzione di Ibatteau che è molto più semplice: basta usare .strip all'interno del modello stesso (non è necessario registrare un nuovo filtro). – bryn
L'uso di '{{var.example.strip}}' è in effetti più semplice, tuttavia anche questa soluzione ha il suo uso. Per esempio ti permette di fare '{% filter trim%} {% someothertag%} {% endfilter%}', che non è altrimenti possibile. – jlh