django 自定义验证器功能?

django custom validators function?

我有一个名为 X 的模型,它有一个

STATUS_CHOICES = ( (STATUS_A, 'A'), (STATUS_B, 'B'), (STATUS_O, 'Other'), ) 和字段名称 status = models.CharField(max_length=48, choices=STATUS_CHOICES)

我在这里尝试为上传的电子表格编写一个自定义验证器,以检查应该 return 只有 STATUS_CHOICES 的值和它应该 return 的任何其他值错误我应该怎么写?

validators.py

from app.model import X
def validate_A_or_B(value):
    return value in dict(X.STATUS_CHOICES).values()

这是正确的吗?

您可以像这样为字段定义自定义验证:

validators.py:

from your_view.models import X
from django.core.exceptions import ValidationError

 def validate_status(value):

     if value not in dict(X.STATUS_CHOICES).values():
         raise ValidationError("your message")
     return value

您可以像这样在您的模型字段中使用它:models.CharField(max_length=48, choices=STATUS_CHOICES, validators = [validate_status]) 不要忘记包含 from .validators import validate_status