Looking for django Keywords? Try Ask4Keywords

Django Etiquetas simples


Ejemplo

La forma más sencilla de definir una etiqueta de plantilla personalizada es usar un simple_tag . Estos son muy fáciles de configurar. El nombre de la función será el nombre de la etiqueta (aunque puede anularlo), y los argumentos serán tokens ("palabras" separadas por espacios, excepto los espacios entre comillas). Incluso soporta argumentos de palabras clave.

Aquí hay una etiqueta inútil que ilustrará nuestro ejemplo:

{% useless 3 foo 'hello world' foo=True bar=baz.hello|capfirst %}

Sean foo y baz variables de contexto como las siguientes:

{'foo': "HELLO", 'baz': {'hello': "world"}}

Digamos que queremos que esta etiqueta muy inútil se muestre así:

HELLO;hello world;bar:World;foo:True<br/>
HELLO;hello world;bar:World;foo:True<br/>
HELLO;hello world;bar:World;foo:True<br/>

Tipo de concatenación de argumentos repetida 3 veces (3 es el primer argumento).

Aquí está el aspecto de la implementación de la etiqueta:

from django.utils.html import format_html_join

@register.simple_tag
def useless(repeat, *args, **kwargs):
    output = ';'.join(args + ['{}:{}'.format(*item) for item in kwargs.items()])
    outputs = [output] * repeat
    return format_html_join('\n', '{}<br/>', ((e,) for e in outputs))

format_html_join permite marcar <br/> como HTML seguro, pero no el contenido de los outputs .