Je souhaite clarifier la documentation de Django-rest-framework concernant la création d'un objet modèle. Jusqu'à présent, j'ai trouvé qu'il y avait 3 approches sur la façon de gérer de tels événements.
-
La fonction
create()
méthode. Voici la méthode la documentationclass CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data)
-
L'ensemble ModelView
create()
méthode. Documentationclass AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly]
-
L'ensemble ModelView
perform_create()
méthode. Documentationclass SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user)
Ces trois approches sont importantes en fonction de l'environnement de votre application. Mais quand devons-nous utiliser chacune d'entre elles ? create() / perform_create()
fonction ? D'autre part, j'ai trouvé quelques comptes où deux méthodes de création ont été appelées pour une seule demande d'affichage, la fonction ModelViewSet
's create()
et du sérialiseur create()
.