dar*_*rse 2 django django-validation
我使用 Django 的内置库定义了一个正则表达式验证器。我用它来验证模型上的字段。像这样:
from django.core.validators import RegexValidator
validate_alphanumeric = RegexValidator(r'^[a-zA-Z0-9]*$', 'Only alphanumeric characters are allowed.')
class MyModel(models.Model):
label = models.CharField(max_length=40, validators=[validate_alphanumeric])
Run Code Online (Sandbox Code Playgroud)
但是,我如何在我的领域之外使用它呢?假设我想'Hello'使用验证器验证字符串,前提是验证器存储在常规变量而不是模型中。这些文档看起来很混乱。
谢谢。
很简单:验证器是可调用的,因此您只需使用要验证的值来调用它,如果该值未验证,它将引发一个ValidationError:
>>> from django.core.validators import RegexValidator
>>> validate_alphanumeric = RegexValidator(r'^[a-zA-Z0-9]*$', 'Only alphanumeric characters are allowed.')
>>> validate_alphanumeric("foo") # ok, nothing happens
>>> validate_alphanumeric("++") # raises a ValidationError
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/bruno/.virtualenvs/blook/local/lib/python2.7/site-packages/django/core/validators.py", line 61, in __call__
raise ValidationError(self.message, code=self.code)
ValidationError: [u'Only alphanumeric characters are allowed.']
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4183 次 |
| 最近记录: |