我想澄清django-rest-framework关于创建模型对象的给定文档.到目前为止,我发现有3种方法可以处理此类事件.
Serializer的create()方法.这是文档
class CommentSerializer(serializers.Serializer):
def create(self, validated_data):
return Comment.objects.create(**validated_data)
Run Code Online (Sandbox Code Playgroud)ModelViewset create()方法.文档
class AccountViewSet(viewsets.ModelViewSet):
queryset = Account.objects.all()
serializer_class = AccountSerializer
permission_classes = [IsAccountAdminOrReadOnly]
Run Code Online (Sandbox Code Playgroud)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().
希望任何人都能分享他们的一些知识来解释,这肯定会对我的开发过程非常有帮助.