django - 如何在 UpdateAPIView 中返回自定义 JSON 响应?

标签 django python-3.x django-rest-framework

我试图在用户提交后完成更新数据后返回一些自定义消息。我如何在 UpdateApiView 中执行此操作?

class DetailUpdateView(generics.UpdateAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    lookup_field = "pk"
    serializer_class = DetailSerializers

    def get_queryset(self):
       data = Data.objects.all()
       return data

我想要这样的回复:

{
"message": "success",
"status": 200,
"details": [
    {
        "id": 2,
        "DOB": "2012-10-21",
        "cycle_length": "10",
        "category": "2",
        "child_dob": null,
        "Period": "10",
        "Last_cycle": "2012-10-21",
        "userid": 2
    },

最佳答案

您可以从 UpdateAPIView 重写 update,如下所示:

class DetailUpdateView(generics.UpdateAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    lookup_field = "pk"
    serializer_class = DetailSerializers

    def get_queryset(self):
       data = Data.objects.all()
       return data

    def update(self, request, *args, **kwargs):
       partial = kwargs.pop('partial', False)
       instance = self.get_object()
       serializer = self.get_serializer(instance, data=request.data, partial=partial)
       serializer.is_valid(raise_exception=True)
       self.perform_update(serializer)
       result = {
        "message": "success",
        "details": serializer.data,
        "status": 200,

       }
       return Response(result)

关于django - 如何在 UpdateAPIView 中返回自定义 JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59609826/

相关文章:

python - 在 Django 中,如何清除所有的 memcached 键和值?

python - 具有使用通用关系的动态 upload_to 函数的 Django 图像模型

python - Django 在 vi​​rtualenv 下加载 RPy2 时找不到 R

python - 即使列中不存在数据,Pandas 也会使用自定义列进行数据透视

python - __slots__ 在 Python 中是如何实现的?

python - Django Rest Framework SerializerMethodField 传递额外参数

javascript - 从 Django 模型读取数据,还是通过 API?

python - os.chdir 工作一次,第二次调用后不工作; python 脚本

python - 具有自定义多对多映射的 Django 序列化模型

django - 如何在 Django Rest Framework api 中隐藏 url?