You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Rest Framework中Serializer的create方法如何返回响应到视图

实现方案

序列化器的create方法仅负责订单和明细数据的创建逻辑,响应格式需要在视图层手动组装返回,具体实现如下:

1. 编写视图逻辑

在你的views.py中添加如下代码:

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .serializers import OrderSerializer

class OrderBatchCreateView(APIView):
    def post(self, request):
        serializer = OrderSerializer(data=request.data)
        # 校验提交的数据是否合法
        if serializer.is_valid():
            # 校验通过触发序列化器create方法创建数据
            serializer.save()
            # 组装成功响应
            dict_response = {
                "error": False, 
                "Title": "Success", 
                "ico": "successIcon", 
                "message": "产品条目已成功添加"
            }
            return Response(dict_response, status=status.HTTP_201_CREATED)
        # 校验失败组装错误响应
        exceptions = []
        for key in serializer.errors.keys():
            exceptions.append({"field": key, "message": serializer.errors[key][0]})
        dict_response = {
            "error": True,
            "status": 400,
            "message": "提交的数据不合法,请修正以下错误",
            "exception": exceptions
        }
        return Response(dict_response, status=status.HTTP_400_BAD_REQUEST)

2. 配置路由

在对应APP的urls.py中添加路由映射:

from django.urls import path
from .views import OrderBatchCreateView

urlpatterns = [
    # 可根据实际需求修改路由地址
    path('order/batch-add/', OrderBatchCreateView.as_view(), name='order_batch_add'),
]

补充说明

如果需要在成功响应中返回创建好的订单及明细数据,直接在成功响应的dict_response中添加"data": serializer.data即可,序列化器会自动按你定义的字段格式返回完整数据。

内容的提问来源于stack exchange,提问作者Md. Rezaul Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:54:03