作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想写一个drf validator这将根据其他字段的值将字段标记为必填。例如:
class MySerializer(serializers.Serializer):
has_children = fields.BooleanField()
nb_childs = fields.IntegerField(min_value=1, validators=[RequiredIf(field='has_children', value=True)], required=False)
起初我相信class based validator方法是通过使用如下方法检索“has_children”的值:
def set_context(self, serializer_field):
print serializer_field.parent.initial_data
但未设置“initial_data”。有什么线索吗?
最佳答案
看看here in the DRF documentation
基本上,要进行对象级验证,您需要重写 Serializer 的 validate(self, data)
方法,使用 data
参数的值(this是序列化程序的状态作为 dict
提供以进行验证)然后在出现任何错误时引发 ValidationError
。
如果需要为特定字段引发错误,则可以将字典作为参数传递给 ValidationError
构造函数:
raise ValidationError({'yourfield': ['Your message']})
关于python - Django 休息框架条件必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48009349/
在使用网站、加载内容等一段时间后,此消息显示“Fill:SelectCommand.Connection 属性尚未初始化”!我认为这是因为 sql 连接,但不确定......我想知道我能做些什么来防止
我是一名优秀的程序员,十分优秀!