【问题标题】:django custom validators function?django 自定义验证器功能?
【发布时间】:2022-01-27 03:16:44
【问题描述】:

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

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

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

validators.py

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

这对吗?

【问题讨论】:

    标签: python-3.x django django-models django-views django-validation


    【解决方案1】:

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

    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

    【讨论】:

    • 我的意思是代码短语 dict(X.status_Choices).values() 是否正确?
    • 是的,我创建了一个自定义验证器,暗示了这一点
    • 如果这对您有帮助,您可以标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    相关资源
    最近更新 更多