0

テンプレート タグに 3 つ以上のパラメーターを指定する方法はありますか?

できます:

val1|my_function:val2

しかし、val3 はどこに行くのでしょうか?

私は試した

val1|my_function:val2,val3

編集: val1、val2、val3 は動的です。つまり、{{val2}} のようにアクセスできます。

4

3 に答える 3

1

templatetag は引数を 1 つだけ受け入れます。

これを回避するにはいくつかの方法がありますが、それが価値があるかどうか、またはロジックを変更できるかどうかを検討します。

引数は数字または文字列である必要があります。

したがって、これは機能しません:

val1|func:['a','b']
val1[func:{'a':'b'}
val1|func:('a','b')

これはうまくいきます:

val1|func:10
val1|func:10.2
val1|func:"10"

できることは、構造化された方法でフォーマットされた文字列を送信することです。

val1|func:"['a','b']"

そして、これを解析するために必要なデータ型を作成できますが、これは非常に醜い解決策になります。

よりクリーンなソリューションは、複数のタグを使用することです。

val1|func:'a'|func:'b'
于 2013-01-30T14:30:06.100 に答える
0

これがフィルターであり、フィルターは 1 つまたは 2 つの引数しか取ることができません。カスタム テンプレート フィルターの作成。複数の引数を取ることができるタグが必要な場合は、カスタム テンプレート タグの記述 を確認してください。

于 2013-01-30T14:21:27.893 に答える
0

文字列の場合、次のことができます。

val1|my_function:"val2,val3"

そして分割します:

@register.filter()
def my_funtion(val1, args):
    args = [x.strip() for x in args.split(',')]
    #do something
    return value
于 2013-01-30T14:30:19.733 に答える