首页 > 解决方案 > 如何在 Django 的 forms.ChoiceField 中默认选择一个选项?

问题描述

我有这样的事情:

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?

标签: djangoforms

解决方案


这是工作

myfield = forms.ChoiceField(choices=CHOICES, required=False, initial="opt3`")

我的问题是我的观点:

form = MyForm(request.GET)

现在我解决了这个问题:

if request.GET:
    form = MyForm(request.GET)
else:
    form = MyForm()

推荐阅读