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 .