Quero esclarecer a documentação fornecida django-rest-frameworksobre a criação de um objeto de modelo. Até agora descobri que existem 3 abordagens sobre como lidar com esses eventos.
O
create()método do serializador . Aqui está a documentaçãoclass CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data)O
create()método ModelViewset . Documentaçãoclass AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly]O
perform_create()método ModelViewset . Documentaçãoclass SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user)
Essas três abordagens são importantes, dependendo do ambiente do seu aplicativo.
Mas QUANDO precisamos usar cada create() / perform_create()função ??. Por outro lado, descobri que dois métodos de criação foram chamados para uma única solicitação de postagem do modelviewset create()e do serializador create().
Espero que alguém compartilhe um pouco de seu conhecimento para explicar e isso certamente será muito útil no meu processo de desenvolvimento.
create(self, validated_data)no serializador, significa que ele se concentra na lógica de validação de dados? e mais sobre isso pode ajudar a retornar os dados do serializador fornecido de volta para a resposta, certo?