0

我有时间验证一个 6 位数字:

# forms.py
class TheForm(forms.Form):
    code = forms.RegexField(regex=r'^\d{6}$')

# tests.py
class TheFormTestCase(TestCase):
    def test_the_form(self):
        form = TheForm(initial={'code': '123456'})
        self.assertTrue(form.is_valid(),
            'Form should accept a string of 6 characters '
            'that are digits')

我的测试用例返回无效。有人可以指出我做错了什么吗?

4

2 回答 2

0

初始数据不用于验证。您应该传递data参数。

于 2013-01-19T19:20:47.053 回答
0

Django 文档中所述

如果未给出特定字段的值,则初始值不会用作验证中的“备用”数据。初始值仅用于初始表单显示

你应该使用data参数:

form = TheForm(data={'code': '123456'})
于 2013-01-19T19:22:18.870 回答