2
カスタムテンプレートフィルタに複数の引数を送信する方法がわかりません。Django - テンプレート内の変数からの文字列
問題は、テンプレート変数を引数として使用することです。
カスタムテンプレートのFILTER
@register.filter
def is_scheduled(product_id,dayhour):
day,hour = dayhour.split(',')
return Product.objects.get(id=product_id).is_scheduled(day,hour)
通常の使用
{% if product.id|is_scheduled:"7,22" %}...{% endif %}
私は2つの引数を置くように、上記の行が正常に動作します - フィルター( - 作品テスト)に7と22を。問題は、引数としてプレーンテキスト/文字列の代わりに変数を入れたいということです。私のテンプレートで
:
{% with day=forloop.counter|add:"-2" hour=forloop.parentloop.counter|add:"-2" %}
は今、私は、引数として{{ day }}
と{{ hour }}
を使用します。
Iは、例えば試み:
{% if product.id|is_scheduled:"{{ day }},{{ hour }}" %}...{% endif %}
しかし、これは発生します
例外値:INTの無効なリテラルを()ベース10と: '{{日}}'
ご意見はありますか?
残念ながら、これは動作しません。なぜ私は分からない。おそらく、昼と時間は整数です。例外値:\t 'int'オブジェクトには属性 'split'がありません。また、dayhour変数を出力すると、たとえば "0,2"ではなく0が出力されます。 –
私は型変換を含むように答えを更新しました –
良いアプローチのようですが、多分構文に問題があります。 u'hour | stringformat: "s" '私はエラーの原因を突き止めようとしています。 –