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'
请指教。 谢谢。
回滚串行到默认
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)
并显示打印,请 –
如果请求中的'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 ='关键字参数。' –
对不起,我修复了这两个问题,您可以再试一次 –
欢迎的计算器。嗨,请添加您的代码和错误跟踪。 –
谢谢,我用编码和错误信息编辑了我的问题。 –