小编rei*_*eer的帖子

使用 ListCreateAPIView 和 ListSerializer 进行批量创建

上述两种方法有什么区别呢?

我不明白它们是如何工作的,我确实尝试过谷歌搜索、文档、StackOverflow、中等文章,但我不明白它们的工作原理。

ListCreateAPIView 是否会按照列表的长度调用创建方法?如何覆盖它?ListSerializer,我根本不明白这一点。所以我必须有一个父列表序列化器和子模型序列化器。

在每个方法中我应该在哪里添加验证?如果我想覆盖字段或保存额外信息怎么办?

基本上,我正在尝试为批量创建用户创建一个 API 端点。这意味着除了验证之外,我还需要为后端创建的每个用户设置密码。我该如何保存它?

当我尝试使用 ListCreateAPIView 时,它不断向我抛出错误 ListSerializer is not iterable 即使我设置了 much = True 后也是如此。

ListCreateAPI 仅适用于模型序列化器还是我需要将该类设置为 ListSerializer 类?

而且,当我关注这篇有关使用 ListSerializer 进行批量创建的中等文章时,它一直告诉我类似“JSON 解析错误 - 需要 ',' 分隔符:第 4 行第 20 列(字符 72)”

我真的不明白 ListSerializer 和 ListCreateAPIView 的工作原理。

任何帮助将不胜感激。我是这个 REST API 的新手。谢谢。

我的代码只是基本的

serializers.py

class BulkCreateUsersListSerializer(serializers.ListSerializer):
    def create(self, validated_data):
        users = [UserModel(**item) for item in validated_data]
        return UserModel.objects.bulk_create(users)

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = ...
        fields = ...
        list_serializer_class = BulkCreateUserListSerializers #commented when I tried using …
Run Code Online (Sandbox Code Playgroud)

django django-views django-rest-framework

2
推荐指数
1
解决办法
2276
查看次数