我完全被困在这里了。为什么这个测试用例失败?在
class BogusForm(forms.Form):
bogus_bool = forms.BooleanField()
class TestBogusForm(TestCase):
def test_bogus_false(self):
query_dict = QueryDict('', mutable=True)
query_dict.update({'bogus_bool': False})
bogus_form = BogusForm(query_dict)
self.assertTrue(bogus_form.is_valid())
它无法通过表单字段验证,,但只有当我更新QueryDict时伪布尔为False时才会失败。如果我说:
^{pr2}$然后通过验证。这是怎么回事?这是Django表单中的bug吗?在
如果在将QueryDict传递给BogusForm构造函数之前查看它,它看起来像这样:
<QueryDict: {u'bogus_bool': [False]}>
在我看来完全合法和正确。在
我同意这是不正确的行为。在
这应该适用于特定字段:
^{pr2}$对于表单上的所有bool字段都应该这样做:
有一种方法可以使这一点变得更好,即不需要布尔字段上的
required=False
位,但目前不值得这样做。在从django的documentation
这是因为在默认情况下,您的伪布尔是必填字段。在
应该会成功的。在
相关问题 更多 >
编程相关推荐