Quiero aclarar la documentación proporcionada django-rest-frameworksobre la creación de un objeto modelo. Hasta ahora encontré que hay 3 enfoques sobre cómo manejar tales eventos.
El
create()método del serializador . Aquí está la documentaciónclass CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data)El
create()método ModelViewset . Documentaciónclass AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly]El
perform_create()método ModelViewset . Documentaciónclass SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user)
Estos tres enfoques son importantes según el entorno de su aplicación.
Pero, ¿CUÁNDO necesitamos usar cada create() / perform_create()función? Por otro lado, encontré una cuenta de que se llamaron dos métodos de creación para una sola solicitud de publicación del modelviewset create()y del serializador create().
Espero que alguien comparta algunos de sus conocimientos para explicarlo y esto seguramente será muy útil en mi proceso de desarrollo.
create(self, validated_data)serializador, ¿significa que se centra en la lógica de validación de datos? y más, puede ayudar a devolver los datos del serializador dado a la respuesta, ¿verdad?