DRF - restore_object()调用两次

时间:2014-03-18 06:46:51

标签: python django rest django-rest-framework

我需要在序列化程序和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()被调用两次以及为什么上下文会被更新?

1 个答案:

答案 0 :(得分:0)

我不认为这里有足够的信息来诊断您的问题。

您使用的是Browseable API吗?这导致在您没有手动实例化的序列化程序上第二次调用is_valid,这会导致再次调用restore_object,here on github