Django RegexField验证一个6位数字

时间:2013-01-19 19:05:51

标签: regex django django-forms

我有一段时间验证一个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')

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如上所述in the Django documentation

  如果a,

初始值不用作验证中的“后备”数据   没有给出特定字段的值。初始值只是   用于初始表格显示

您应该使用data参数:

form = TheForm(data={'code': '123456'})