python - Django 休息框架 : Insert multiple objects in one post request

标签 python django serialization django-rest-framework

我在 API 后端使用 DRF。我需要将多个对象插入到一个 post 请求中。看了这么多教程,还有How do I create multiple model instances with Django Rest Framework? ,但没有成功。我正在使用 ModelSerializer,但是在使用 时许多=真那么 ListSerializer 有问题。

View .py

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

序列化器.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'
        )
并覆盖它的 View :
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
        )

关于python - Django 休息框架 : Insert multiple objects in one post request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607644/

相关文章:

python - Python 中的图像梯度矢量场

python - find_peaks 未识别阵列开头的峰值

python - Django 对象按参数名过滤

python - Python 中的 AWS Elastic Beanstalk 环境变量

python - 如何使用 flask-bootstrap 将标题文本垂直和水平居中

python - 错误 403 : HTTP status code is not handled or not allowed in scrapy

Django性能/内存使用率

java - 使用 Jackson 序列化根原始对象

java - 如何使用 CORDA 将类型列入白名单以进行序列化

c# - 如何在 C# 中反序列化 JSON 字符串是正确的?