是的,为了更好地组织和重用验证器,通常会将其放在单独的文件中。
以下是一个示例代码,展示了如何编写一个Django验证器并将其放在单独的文件中。
# validators.py
from django.core.exceptions import ValidationError
def validate_even(value):
if value % 2 != 0:
raise ValidationError('The value must be an even number.')
from django.db import models
from .validators import validate_even
class MyModel(models.Model):
number = models.IntegerField(validators=[validate_even])
在上述示例中,我们定义了一个名为validate_even的验证器函数,并将其放在validators.py文件中。然后,在MyModel模型的number字段中,通过validators参数将验证器应用于该字段。
这样,我们就可以在需要使用验证器的地方直接导入并使用它,而不必在每个文件中重复定义。这种方式使代码更易于维护和扩展。