gpt4 book ai didi

django - django 表单选择字段的初始值被忽略

转载 作者:行者123 更新时间:2023-12-03 23:46:07 24 4
gpt4 key购买 nike

我有这个表格:

class UserUsesSourceForm(forms.Form):
# some fields here
username = forms.CharField(label=("Username"), max_length=30, help_text = ("Required"))
provider = forms.ChoiceField(widget=forms.Select(), choices=SOURCES_CHOICES, initial=SOURCES_CHOICES[1])

可用的选择是:
E = 'e'
A = 'a'
SOURCES_CHOICES = (
(A, 'A'),
(E, 'E'),
)

观点:
form = UserUsesSourceForm(initial={"username":request.user.username, 'provider':SOURCES_CHOICES[1]})return render_to_response('update_datasource.html', context_instance=RequestContext(request, params))

和模板:
<form action="" method="post">
{% csrf_token %}
{% if form.non_field_errors %}
<p>
{% for error in form.non_field_errors %}
<div class="text-error">{{ error|escape }}</div>
{% endfor %}
</p>
{% endif %}
<div class="control-group">

<label class="control-label" for="id_provider">Data source</label>
<div class="controls">
{{form.provider}}
</div>
</div>
</form>

问题是,即使初始值设置正确,我可以在调试中测试(即表单“provider”字段初始值是我想要的元组),最终html总是显示选择框中的第一个元素:
<select name="provider" id="id_provider">
<option value="A">A</option>
<option value="E">E</option>
</select>

..虽然我希望它有一个“默认”或“事件”选项。
请注意 用户名 字段已正确初始化。
我如何进一步调查以找出问题所在?

最佳答案

您需要通过 option initial 中的值而不是元组数据:

form = UserUsesSourceForm(
initial={'username':request.user.username,
'provider':SOURCES_CHOICES[1][0]})

关于django - django 表单选择字段的初始值被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15991501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com