小编dho*_*and的帖子

除非选中,否则带有BooleanField的Django表单始终无效

我有一个使用以下形式的应用程序:

class ConfirmForm(forms.Form):
    account_name = forms.CharField(widget=forms.HiddenInput)
    up_to_date = forms.BooleanField(initial=True)
Run Code Online (Sandbox Code Playgroud)

我使用以下模板exerpt中的表单:

<form class="confirmform" action="/foo/" enctype="multipart/form-data" method="post">
{{ confirm_form.up_to_date }} Check if this data brings the account up to date.<br>
{{ confirm_form.account_name }} <input type="submit" name="confirm" value="Confirm" />
</form>
Run Code Online (Sandbox Code Playgroud)

我的视图使用以下基本代码结构:

if request.method == 'POST':
    #check for 'confirm' because I actually have multiple forms in this page
    if 'confirm' in request.POST:
        confirm_form = ConfirmForm(request.POST)
        if confirm_form.is_valid():
            #do stuff
        else:
            c['confirm_form'] = confirm_form
else:
    c['confirm_form'] = ConfirmForm({'account_name':'provided_value'})
Run Code Online (Sandbox Code Playgroud)

有两件事是错的:

1)即使我有initial = True,当页面加载时取消选中该复选框

2)除非我勾选复选框,否则表格始终无效.它仅为up_to_date提供错误:"此字段是必需的."

我已经阅读了这个类似的问题, …

django django-forms

46
推荐指数
3
解决办法
3万
查看次数

标签 统计

django ×1

django-forms ×1