姜戈。动态选择字段的初始值
Django. Initial value of Choice Field dynamically
我正在尝试在视图中动态设置选择字段的初始值。但是不行,不知道哪里出了问题:
views.py
...
form = FormEditGroup(initial={
'choices_a': group.get_a(),
'choices_i': group.get_i(),
})
get_a()
是returns "open" or "closed", get_i()
returns "admins" or "all"。
forms.py
class FormEditGroup(forms.Form):
choices_a = (("closed", "Closed"), ("open", "Open"))
choices_i = (("all", "All"), ("admins", "Admins"))
a = forms.ChoiceField(... choices=choices_a),
i = forms.ChoiceField(... choices=choices_i),
它没有将初始值设置为 get_a()
或 get_i()
return。
您应该将 initial
字典中的表单字段名称作为键传递。
来自 Form.initial
上的文档
This argument, if given, should be a dictionary mapping field names to
initial values.
更改 'choices_a'
和 'choices_i'
键以分别形成字段名称 a
和 i
。
试试下面的代码:
form = FormEditGroup(initial={
'a': group.get_a(), # initial value for 'a'
'i': group.get_i(), # initial value for 'i'
})
我正在尝试在视图中动态设置选择字段的初始值。但是不行,不知道哪里出了问题:
views.py
...
form = FormEditGroup(initial={
'choices_a': group.get_a(),
'choices_i': group.get_i(),
})
get_a()
是returns "open" or "closed", get_i()
returns "admins" or "all"。
forms.py
class FormEditGroup(forms.Form):
choices_a = (("closed", "Closed"), ("open", "Open"))
choices_i = (("all", "All"), ("admins", "Admins"))
a = forms.ChoiceField(... choices=choices_a),
i = forms.ChoiceField(... choices=choices_i),
它没有将初始值设置为 get_a()
或 get_i()
return。
您应该将 initial
字典中的表单字段名称作为键传递。
来自 Form.initial
This argument, if given, should be a dictionary mapping field names to initial values.
更改 'choices_a'
和 'choices_i'
键以分别形成字段名称 a
和 i
。
试试下面的代码:
form = FormEditGroup(initial={
'a': group.get_a(), # initial value for 'a'
'i': group.get_i(), # initial value for 'i'
})