我需要在序列化程序和a.t中访问额外的上下文。文档我在视图中这样做: -
serializer = self.serializer_class(data=request.DATA, context={'group_id':group_id})
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
现在在序列化程序中我覆盖了restore_object()
,我需要在restore_object
中访问额外的上下文。为什么restore_object被调用两次而我的额外上下文第二次是空的。
当我添加打印。
来自serializer.is_valid()
上下文打印为{'group_id': u'1'}
下次返回Response(serializer.data ...
它打印标准上下文
{u'view': <accounts.views.MutateGroupMember object at 0x108278810>, u'request': <rest_framework.request.Request object at 0x108285a90>, u'format': None}
为什么restore_object()
被调用两次以及为什么上下文会被更新?
答案 0 :(得分:0)
我不认为这里有足够的信息来诊断您的问题。
您使用的是Browseable API吗?这导致在您没有手动实例化的序列化程序上第二次调用is_valid,这会导致再次调用restore_object,here on github