【发布时间】:2020-09-17 16:30:26
【问题描述】:
我有这样的事情:
class MyForm(forms.Form):
CHOICES = (
('opt1', 'Opt1'),
('group',(
('opt2', 'Opt2'),
('opt3', 'Opt3'),
)
),
)
myfield = forms.ChoiceField(choices=CHOICES, required=False)
当我渲染这个表单时,默认选择opt1,但我需要选择opt3。
我试过类似的东西:
myfield = forms.ChoiceField(choices=CHOICES, required=False, initial="opt3")
但它没有工作。
我得到了什么:
<select name="myfield" id="id_myfield">
<option value="opt1">Opt1</option>
<optgroup label="group">
<option value="opt2">Opt2</option>
<option value="opt3">Opt3</option>
</optgroup>
</select>
我想得到什么:
<select name="myfield" id="id_myfield">
<option value="opt1">Opt1</option>
<optgroup label="group">
<option value="opt2">Opt2</option>
<option value="opt3" selected>Opt3</option>
</optgroup>
</select>
如何让 opt3 默认被选中?
【问题讨论】:
-
现在它可以工作了,之前它没有工作,因为在我看来,我有 MyForm(request.GET) 来完成用户填写的数据。然后忽略初始数据。我使用 if 语句来请求 request.GET,然后根据情况使用 MyForm(request.GET) 或 MyForm()。