Py学习  »  Django

针对布尔值的Django表单验证不起作用

Grayson Pike • 5 年前 • 1603 次点击  

我有一个简单的HTML表单,我正试图用Django表单验证它。问题是,Django的表单验证将只识别 is_kit 如果是 'True' . (当它是 'False' ,它将给出一个错误,说明该字段是必需的。这是表格:

<form method="post"> {% csrf_token %}
    <input type="hidden" name="part_id" value="{{ part.id }}" />
    <input type="hidden" name="is_kit" value="False" />
    <input type="submit" class="btn btn-link" value="Add to Cart"/>
</form>

这是Django表格:

class AddItemToCartForm(forms.Form):
    part_id = forms.IntegerField()
    is_kit = forms.BooleanField()

以下是我观点的相关部分:

def post(self, request, id):
    print(request.POST)
    print(request.POST.get('is_kit'))
    form = AddItemToCartForm(request.POST)
    print(form.errors)

我的服务器给出的输出如下:

<QueryDict: {'is_kit': ['False'], 'part_id': ['1'], 'csrfmiddlewaretoken': ['X2vkpwG6GJmK79vypFPAveTzVkrxBauJWgfnRvAtJVcZ8NwBokjQhCnfGN9dFFYF']}>
False
<ul class="errorlist"><li>is_kit<ul class="errorlist"><li>This field is required.</li></ul></li></ul>

我认为我的模板应该可以工作,因为 the source code , forms.BooleanField 应转换字符串 “假” 在发布数据到python中 False 价值。

正如我上面提到的,如果 伊萨克试剂盒 设置为 “真” .

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37933
 
1603 次点击  
文章 [ 2 ]  |  最新文章 5 年前