编写django验证器。我是否需要自己的验证程序文件?
Django Manuel中有一个编写验证器的例子。 库特编写django验证器。我是否需要自己的验证程序文件?,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,Django Manuel中有一个编写验证器的例子。 库特 例如,这里有一个只允许偶数的验证器: from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ def validate_even(value): if value % 2 != 0: raise ValidationError(
例如,这里有一个只允许偶数的验证器:
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
def validate_even(value):
if value % 2 != 0:
raise ValidationError(
_('%(value)s is not an even number'),
params={'value': value},
)
您可以通过字段的validators参数将其添加到模型字段:
> from django.db import models
>
> class MyModel(models.Model):
> even_field = models.IntegerField(validators=[validate_even])
库特端 但是我应该把这个代码放在哪里呢
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
def validate_even(value):
if value % 2 != 0:
raise ValidationError(
_('%(value)s is not an even number'),
params={'value': value},
)
我应该创建一个自己的文件,比如validator.py,还是应该将其放入模型中?最好的做法是尽可能多地分离代码的不同逻辑组件。因此,只将模型的代码放在模型文件中,并将验证程序代码放在单独的文件中。我将项目范围内的可重用验证程序放在core/validators.py中。App/validators.py中的应用程序级验证程序。如果行数不多,您可以将它们保存在models.py或forms.py(如果使用django rest framework,则可以将它们保存在serializers.py)中,但我个人的偏好是将它们分开。