0

我在我forms.py的表单输入中定义了以下选项:

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

在我的模板中,我目前有以下代码行,允许人们选择其中一个选项。

{{ formtoaddselection.selection }}

一般来说这很好,但我有一个极端情况,有时我想覆盖那些默认选择,比如CornerCase1and 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 回答