1 覆盖视图上的 create 方法并添加如下内容:
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)
return Response({"Success": "msb blablabla"}, status=status.HTTP_201_CREATED, headers=headers)
2 在上面的代码中,更改raise_exception
to False
如果序列化器无效,则返回您想要的任何内容。 IE。:
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if not serializer.is_valid(raise_exception=False):
return Response({"Fail": "blablal", status=status.HTTP_400_BAD_REQUEST)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response({"Success": "msb blablabla"}, status=status.HTTP_201_CREATED, headers=headers)
您正在使用 CBV,因此您将能够创建扩展 DRF 类的自定义泛型类,并且 DRY
但是,我想说你不应该在响应中添加“成功”或“失败”...如果http代码是2xx,用户会知道它没问题,4xx表示请求有问题,5xx表示请求有问题您的代码(或服务器)出现错误,您无需在响应正文中重复该信息,只需使用 HTTP 状态代码
希望这可以帮助