表单字段中的Django字母数字验证

时间:2013-03-18 06:32:51

标签: django-forms validation django-views django-validation

我想执行字段验证,但条件是

1)该字段应该有10个字符。

2)关闭这些前5个字符应为字母,接下来的5个字符应为数字

我执行了最大长度检查的验证,但其余部分如何执行。这可以在单个“if”条件下完成。

我正在谷歌搜索执行该操作的逻辑,但没有任何想法。任何人都可以帮我执行相同的操作。

forms.py进行长度检查

def clean_bookref(self):
        cd=self.cleaned_data
        bookref=cd.get('bookref')

        if len(bookref)<10 and re.match(r'[A-z0-9]+', bookref):
            raise forms.ValidationError("Should be 10 digits")

        return bookref

我正在使用此代码,但它无法正常工作。

谢谢

1 个答案:

答案 0 :(得分:2)

也许你可以使用像他这样的东西:

def clean_bookref(self):
    cd=self.cleaned_data
    bookref=cd.get('bookref')

    if not re.match(r'^[A-Za-z]{5}[0-9]{5}$',bookref) :
        raise forms.ValidationError("Should be of the form abcde12345")

   return bookref