如何使用HyperlinkedIdentifyField将网址转换为实例?
我有几个嵌套的HyperlinkedModelSerializer:
class ChildSerializer(HyperlinkedModelSerializer):
class Meta:
model = Child
fields = ('url', 'name')
extra_kwargs = {
'name': {'required': False}
}
class ParentSerializer(HyperlinkedModelSerializer):
class Meta:
model = Parent
fields = ('url', 'child')
但这不起作用:
>>> s = ParentSerializer(data={'child': {'url': '<valid url>'}})
>>> s.is_valid()
True
>>> s.validated_data()
OrderedDict([('child', OrderedDict())])
出于任何原因,to_instance_value
中的HyperlinkedModelSerializer
不会检索实际对象。
因此,显而易见的解决方案是重写此方法,但是我无法解决如何获取HyperlinkedIdentityField
的{{1}}以返回内部值。我有一个正在工作的kludge:
ChildSerializer
但是我觉得必须有一种 机制,可以从我在这里缺少的有效URL中检索对象...