gpt4 book ai didi

提交时 Django 表单 BooleanField 返回 'on'

转载 作者:行者123 更新时间:2023-12-01 09:28:13 27 4
gpt4 key购买 nike

您好,我是 Django Forms 的新手。我正在尝试在我的表单中添加一个复选框。当我提交表单时,我希望复选框字段应返回 True 或 False(取决于复选框是否被选中)。

但如果该字段被选中,它会发布“on”,如果该字段没有被选中,则什么都不发布。
以下是我的表单中的代码片段:

from django import forms
class MyForm(forms.Form):
def __init__(self):
self.fields['has_code']= forms.CharField(widget= forms.CheckboxInput())

我想要的是当我发布表单时,我应该将发布数据设为 {'has_code': True}

最佳答案

那是您的浏览器,而不是 Django。但是(尽管您没有显示您的 View ,这会有所帮助)您正在 request.POST 中查找。不要那样做。使用 Django 表单的全部意义在于它规范了这样的东西,所以你应该查看表单的 cleaned_data字典。

def my_form_view(request):
if request.method == 'POST':
my_form = MyForm(request.POST)
if my_form.is_valid():
# my_form.cleaned_data['has_code'] is now a bool

您还应该使用 BooleanField 形式中。另外,您不应该覆盖 __init__除非你正在做一些动态的事情。您的表格应该是:
class MyForm(forms.Form):
has_code = forms.BooleanField(widget= forms.CheckboxInput())

关于提交时 Django 表单 BooleanField 返回 'on',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423366/

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