Django rest框架:在一个post请求中插入多个对象

Django rest框架:在一个post请求中插入多个对象

问题描述:

我正在为我的API后端使用DRF。我需要将多个对象插入到一个发布请求中。我看到很多教程,以及How do I create multiple model instances with Django Rest Framework?,但没有成功。我正在使用ModelSerializer,但在使用many = True时,ListSerializer会出现问题。Django rest框架:在一个post请求中插入多个对象

views.py

class SaleUserViewSet(ModelViewSet): 
    queryset = SaleUser.objects.all() 
    serializer_class = SaleUserSerializer(many=True) 

serlializers.py

class SaleUserSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = SaleUser 
     fields = ('id', 'comment', 'creation_date', 'modification_date', 'last_user', 'user', 'sale', 'user_sale_type') 

错误信息

AttributeError at /api/sale_user/ type object 'Meta' has no attribute 'model' 

请指教。 谢谢。

+0

欢迎的计算器。嗨,请添加您的代码和错误跟踪。 –

+0

谢谢,我用编码和错误信息编辑了我的问题。 –

回滚串行到默认

class SaleUserSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = SaleUser 
     fields = ('id', 'comment', 'creation_date', 'modification_date', 'last_user', 'user', 'sale', 'user_sale_type') 

,并覆盖以它:

class SaleUserViewSet(ModelViewSet): 
    queryset = SaleUser.objects.all() 
    serializer_class = SaleUserSerializer 

    def create(self, request, *args, **kwargs): 
     data = request.data.get("items") if 'items' in request.data else request.data 
     many = isinstance(data, list) 
     print (data, many) 
     serializer = self.get_serializer(data=data, many=many) 
     serializer.is_valid(raise_exception=True) 
     self.perform_create(serializer) 
     headers = self.get_success_headers(serializer.data) 
     return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) 
+0

并显示打印,请 –

+0

如果请求中的'requestData else data = request.data'到'if'项目,我重写'data = request.data.get(“items”)数据: 数据= request.data.get(“items”) else: data = request.data',因为我得到这个错误'SyntaxError:无法赋值给条件表达式'有了rewrited代码仍然出错'AssertionError at/api/sale_user/ 实例化序列化程序实例时,不能调用'.is_valid()'作为不传递'data ='关键字参数。' –

+0

对不起,我修复了这两个问题,您可以再试一次 –