Looking for django Keywords? Try Ask4Keywords

Django Enkla taggar


Exempel

Det enklaste sättet att definiera en anpassad malltagg är att använda en simple_tag . Dessa är mycket enkla att installera. Funktionsnamnet kommer att vara etikettnamnet (även om du kan åsidosätta det), och argument kommer att vara symboler ("ord" separerade av mellanslag, förutom mellanrum som är inneslutna mellan citat). Det stöder till och med sökordsargument.

Här är en värdelös tagg som illustrerar vårt exempel:

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

Låt foo och baz vara baz som följande:

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

Säg att vi vill att den här mycket värdelösa taggen ska visas så här:

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

Typ av argumentkoncentration upprepas 3 gånger (3 är det första argumentet).

Så här kan taggimplementeringen se ut:

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 tillåter att markera <br/> som säker HTML, men inte innehållet i outputs .