gpt4 book ai didi

python - 在 For 循环中格式化 Django ValidationError

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:48 25 4
gpt4 key购买 nike

我编写了一系列 RegexValidator 定义,我在 Django 模型输入上调用这些定义。这是一个例子:

def fein_validator(value):
err = None
for validator in FEIN_VALIDATOR:
try:
validator(value)
return value
except ValidationError as exc:
err = exc
raise err

下面是此方法的引用 FEIN_VALIDATOR。请注意,在这个例子中只有一个项目,我有其他验证器有多个项目(因此 for 循环):

FEIN_VALIDATOR = [
RegexValidator(r'^\d{2}-\d{7}$')
]

该方法运行良好,并在应该的时候抛出错误。但是,它抛出的错误是 Enter a valid value. 并且我想自定义返回值以使其更具体。

我试过 this 的版本和 this .但是这些都是假设只有一个pass。我正在尝试使用 for 循环 运行一系列验证器。

问题 1:我正在使用的方法构造是否适用于此 - 或者每个验证是否应该有一个单独的方法? [由此我可以添加自定义消息。]

问题 2:如果这样做有效,我该如何将引发的错误消息更改为自定义消息?

最佳答案

编辑 1:添加评论

是的,你的方法很完美。

编辑 2:添加了自定义错误消息模型链接

custom error messages with Model Form

  def fein_validator(value):
err = None
for validator in FEIN_VALIDATOR:
try:
validator(value)
return value
except ValidationError:
raise ValidationError({'field_name': ["error message",]})

关于python - 在 For 循环中格式化 Django ValidationError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com