相关疑难解决方法(0)

何时使用Serializer的create()和ModelViewset的create()perform_create()

我想澄清django-rest-framework关于创建模型对象的给定文档.到目前为止,我发现有3种方法可以处理此类事件.

  1. Serializer的create()方法.这是文档

    class CommentSerializer(serializers.Serializer):
    
        def create(self, validated_data):
            return Comment.objects.create(**validated_data)
    
    Run Code Online (Sandbox Code Playgroud)
  2. ModelViewset create()方法.文档

    class AccountViewSet(viewsets.ModelViewSet):
    
        queryset = Account.objects.all()
        serializer_class = AccountSerializer
        permission_classes = [IsAccountAdminOrReadOnly]
    
    Run Code Online (Sandbox Code Playgroud)
  3. ModelViewset perform_create()方法.文档

    class SnippetViewSet(viewsets.ModelViewSet):
    
        def perform_create(self, serializer):
            serializer.save(owner=self.request.user)
    
    Run Code Online (Sandbox Code Playgroud)

根据您的应用程序环境,这三种方法很重要.

但是我们什么时候需要使用每个create() / perform_create()函数?在另一方面,我发现一些帐户,两个创建方法被调用单个post请求模型集create()和序列化程序create().

希望任何人都能分享他们的一些知识来解释,这肯定会对我的开发过程非常有帮助.

python django serialization django-rest-framework

65
推荐指数
2
解决办法
2万
查看次数