我在需要引用另一个字段的序列化程序中执行自定义字段级验证。
查看验证文档中的示例,我不清楚是否应该使用validate_<fieldname>
或validate
。看起来两者都有attrs
字典,所以 fromvalidate_<fieldname>
我可以像 from 一样轻松地引用另一个字段validate
(即使描述validate
表明您应该使用它来访问多个字段)。那么为什么会有这两种选择呢?就我而言,使用哪个选项是正确的?
我在需要引用另一个字段的序列化程序中执行自定义字段级验证。
查看验证文档中的示例,我不清楚是否应该使用validate_<fieldname>
或validate
。看起来两者都有attrs
字典,所以 fromvalidate_<fieldname>
我可以像 from 一样轻松地引用另一个字段validate
(即使描述validate
表明您应该使用它来访问多个字段)。那么为什么会有这两种选择呢?就我而言,使用哪个选项是正确的?
提高ValidationError
内部validate_<foo>()
将导致字段错误。
{'foo': ['Not a fooish value.']}
提高ValidationError
内部validate()
将导致非字段错误。
{'non_field_errors': ['Foo and bar are not compatible.']}
那么为什么会有这两种选择呢?
部分原因是上述原因,部分原因是序列化程序 API 在可能的情况下反映了 Django 的表单 API。在需要的地方有一些差异,但validate
和validate_<foo>
风格是相似的。
就我而言,使用哪个选项是正确的?
你判断调用,根据哪个错误信息更合适。