Looking for django Keywords? Try Ask4Keywords

Django 簡單的標籤


定義自定義模板標記的最簡單方法是使用simple_tag 。這些設置非常簡單。函數名稱將是標記名稱(儘管您可以覆蓋它),參數將是標記(“單詞”由空格分隔,除了引號之間的空格除外)。它甚至支持關鍵字參數。

這是一個無用的標籤,將說明我們的例子:

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

foobaz成為上下文變量,如下所示:

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

假設我們希望這個無用的標記像這樣渲染:

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

一種參數連接重複3次(3是第一個參數)。

以下是標記實現的外觀:

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允許將<br/>標記為安全的HTML,而不是outputs的內容。