Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-复选框输入上的布尔字段_Django_Django Models_Django Forms_Boolean - Fatal编程技术网

Django-复选框输入上的布尔字段

Django-复选框输入上的布尔字段,django,django-models,django-forms,boolean,Django,Django Models,Django Forms,Boolean,我有一个ModelForm,它有布尔字段和CheckboxInput。在MYSQL数据库中,布尔字段默认提供0(False)和1(True)的值 表单是一个模式,使用JSON从模型输出内容。当JSON文件添加内容时,它会输入True或False 当我尝试将复选框输入的值从False更改为True并提交时,就会出现此问题。当我尝试此操作时,会收到以下消息: 奇怪的是,这是另一种方式,允许我提交从“真”到“假”的更改 下面是代码(我只在问题中包含了该字段)。该字段是首次预订 模型 first_ti

我有一个ModelForm,它有布尔字段和CheckboxInput。在MYSQL数据库中,布尔字段默认提供0(False)和1(True)的值

表单是一个模式,使用JSON从模型输出内容。当JSON文件添加内容时,它会输入True或False

当我尝试将复选框输入的值从False更改为True并提交时,就会出现此问题。当我尝试此操作时,会收到以下消息:

奇怪的是,这是另一种方式,允许我提交从“真”到“假”的更改

下面是代码(我只在问题中包含了该字段)。该字段是首次预订

模型

first_time_booking = models.BooleanField()
表单小部件

'first_time_booking': CheckboxInput(attrs={'class': 'form-check-input', 'id': 'bfbw_edit_first_time_booking', 'name': 'bfbw_edit_first_time_booking'}),
看法

我试着编写一个If函数来改变值,然后将值改为On,但在关闭它时就不行了。然后我得到下面的消息

if request.POST['first_time_booking'] == 'on':
            bfbw_data.first_time_booking = True
        else:
            bfbw_data.first_time_booking = False

这方面的任何帮助都将是巨大的。提前感谢您的回复。

该值要么是“”上的(如果用户选中了复选框),要么不存在(如果用户没有选中复选框)

因此,您可以使用:

bfbw_data.first_time_booking = request.POST.get('first_time_booking') == 'on'
bfbw\u data.first\u time\u booking=request.POST.get('first\u time\u booking')==on'

注意:最好使用 而不是手动验证和清理数据。
表单
将不会 这不仅简化了在HTML中呈现表单,而且还使其更加方便 验证输入,并将数据清理为更方便的类型


谢谢你的工作,非常感谢你的帮助。是的,我们在代码的其他部分中使用了表单,但是当使用Modals并且需要使用JSON和JQuery来显示数据时,我似乎无法让它工作。再次感谢。
bfbw_data.first_time_booking = request.POST.get('first_time_booking') == 'on'