7

Django には、カスタム テンプレート タグを作成するための優れたツールがいくつか付属しています。

simple_tag と assignment_tag を登録すると、受信トークンの内容が解析args, kwargsされ、参照に正しく解決されるように変換されます (変数が渡されたとします)。

この動作を通常のタグに追加する簡単な方法はありますか?

オブジェクトを使用する必要があるため、通常のタグを使用する必要がありますが、パーサーparserを再現するために多くのコードを処理しているようです。args, kwargs

@register.tag(name='snippet')
def snippet_with_defaults(parser, token):
    bits = token.split_contents()[1:]
    bits # bits needs to be converted to args, kwargs easily

次のように機能するタグが必要です。

{% snippet foo=bar bar=baz %}
This is a glorious django template tag!
{% endsnippet %}

これは非常に一般的な問題 (タグ引数の引数、kwargs パーサー) であるように思われるため、django スニペットまたは何かが必要です!

4

3 に答える 3

5

あなたを助けることができるかもしれないスニペットを見つけました。

args と kwargs を解析するタグ

于 2013-03-01T11:36:33.100 に答える
2

これは、新しい Django でも使用できます。

from django import template

template.base.token_kwargs(bits,
于 2019-09-03T17:14:13.153 に答える