[英]Django rest framework: Insert multiple objects in one post request
I am using DRF for my API backend.我在 API 后端使用 DRF。 I need to insert multiple objects into one post request.
我需要将多个对象插入到一个 post 请求中。 I saw so many tutorials, as well How do I create multiple model instances with Django Rest Framework?
看了这么多教程,还有How do I create multiple model instances with Django Rest Framework? , but not success.
,但没有成功。 I am using ModelSerializer, but when using many=True then have problem with ListSerializer.
我正在使用 ModelSerializer,但是当使用many=True 时,ListSerializer 会出现问题。
views.py视图.py
class SaleUserViewSet(ModelViewSet):
queryset = SaleUser.objects.all()
serializer_class = SaleUserSerializer(many=True)
serlializers.py序列化器.py
class SaleUserSerializer(serializers.ModelSerializer):
class Meta:
model = SaleUser
fields = ('id', 'comment', 'creation_date', 'modification_date', 'last_user', 'user', 'sale', 'user_sale_type')
error message错误信息
AttributeError at /api/sale_user/ type object 'Meta' has no attribute 'model'
/api/sale_user/ 类型对象 'Meta' 处的 AttributeError 没有属性 'model'
Please advise.请指教。
rollback serializer to your default将序列化程序回滚到默认值
class SaleUserSerializer(serializers.ModelSerializer):
class Meta:
model = SaleUser
fields = (
'id',
'comment',
'creation_date',
'modification_date',
'last_user',
'user',
'sale',
'user_sale_type'
)
and override view to it:并覆盖它的视图:
from rest_framework.response import Response
class SaleUserViewSet(ModelViewSet):
queryset = SaleUser.objects.all()
serializer_class = SaleUserSerializer
def create(self, request, *args, **kwargs):
data = request.data.get('items', 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
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.