Quiero aclarar la documentación proporcionada django-rest-framework
sobre 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?