0

forms.pyフォーム入力の選択肢を定義するために、次のものがあります。

selection = forms.TypedChoiceField (label="Format", choices = (("Choice1", "Choice1"), ("Choice2", "Choice2"), ("Choice3", "Choice3"),widget = forms.RadioSelect, required= True)

そして、私のテンプレートには現在、これらの選択肢の 1 つを選択できるようにする次のコード行があります。

{{ formtoaddselection.selection }}

これは一般的には問題ありませんが、これらのデフォルトの選択肢を上書きして と と言うコーナーケースがありCornerCase1ますCornerCase2

テンプレートでこれらのデフォルトをオーバーライドすることは可能ですか?

4

1 に答える 1

2

テンプレート レイヤーで重要な動作を行う唯一の方法は、テンプレート タグを作成することです。

何かのようなもの:

@register.simple_tag
def override_form_choices(field, *args, **kwargs):
    field.choices = [(x, x) for x in args]
    return field


{% override_form_choices formtoaddselection.selection 'foo' 'bar' 'baz' %}

ここでは割り当てタグがより適切で、読みやすく、柔軟です。

于 2013-01-22T18:30:13.620 に答える