本文介绍了DRF:从嵌套的序列化程序验证方法检索外部输入数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Django-睡觉-框架的序列化程序。我有两个序列化程序,一个与另一个嵌套。
class NestedSerializer(serializers.Serializer):
value = AttributeValueField(required=True)
name = serializers.CharField(required=True)
class OuterSerializer(serializers.Serializer):
info = serializers.CharField()
nested = NestedSerializer()
为了验证嵌套序列化程序的数据,我需要从父序列化程序检索输入数据,如下所示:
class NestedSerializer(serializers.Serializer):
...
def validate(self, data):
# of course, it doesn't work, but thats the idea.
info = self.parent.info
# then validate the NestedSerializer with info.
我找不到任何从Validation方法访问这些输入数据的方法。有什么建议吗?感谢您的帮助:)。
推荐答案
在validate()
方法之前,drf序列化程序调用to_internal_value(self, data)
。您将在那里获得父序列化程序的所有数据。因此,正如您在序列化程序中定义validate()
方法一样,定义to_internal_value()
方法并捕获父序列化程序数据。
这篇关于DRF:从嵌套的序列化程序验证方法检索外部输入数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!