gpt4 book ai didi

django - Django Rest Framework (DRF) 中的 add_error(fieldname, ...)

转载 作者:行者123 更新时间:2023-12-05 06:00:33 24 4
gpt4 key购买 nike

我有一个像这样的模型序列化器:

class MySerializer(ModelSerializer):
class Meta:
model = MyModel
fields = ('myfield', 'otherfield')

我需要检查交叉场条件,例如,x.myfield > x.otherfield。(实际上有几个 otherfields 和几个条件。)

我需要详细且易于理解的人类可读错误消息。我目前通过 raise ValidationError(message)MySerializer.validate() 中生成它们(实际上只是第一个),但随后消息出现在 非字段下-errors 键,这对用户来说是丑陋和困难的。将它附加到 myfield 会好得多。

在 Django 表单中,我会使用 add_error('myfield', ...),但我 could not find a similar thing在休息框架中。这里用什么成语比较合适?

最佳答案

简单!

raise ValidationError(dict(myfield=[message]))

这样,一个人可以整体提及多个字段,并且每个字段可以有多个消息。

在哪里可以找到它

截至 2021 年 5 月,相应信息归入 Overriding serialization and deserialization behavior在文档中,而不是人们可能期望的“验证”下。

(为什么我经常不得不写一篇接近完成的 stackoverflow 帖子才能最终在文档中找到我要找的东西?我不知道。希望现在对其他人有所帮助。)

关于django - Django Rest Framework (DRF) 中的 add_error(fieldname, ...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67634465/

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