我试图覆盖 django 创建新对象时发送的响应。
我只需要返回创建对象的主键,而不是整个对象。
我试图覆盖的函数是这样的:
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
data = serializer.data
print(data['id'])
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
数据对象内的字段“id”的名称可以因每个实体而不同。
最终的代码应该是这样的:
return Response(pk, status=status.HTTP_201_CREATED, headers=headers)
知道如何让它发挥作用吗?
提前致谢
data
期望的
Response
是 dict
,所以:
def create(self, request, *args, **kwargs):
...
return Response(
{"pk": serializer.data["id"]},
status=status.HTTP_201_CREATED,
headers=headers,
)