Quand utiliser Sérialiseur de créer() et ModelViewset de créer() perform_create()

Je tiens à préciser la documentation de django-rest-framework concernant la création d'un objet de modèle. Jusqu'à présent, je trouve qu'il y a 3 approches sur la façon de gérer de tels événements.

  1. Le Sérialiseur de create() méthode. Voici la la documentation

    class CommentSerializer(serializers.Serializer):
    
        def create(self, validated_data):
            return Comment.objects.create(**validated_data)
  2. La ModelViewset create() méthode. La Documentation

    class AccountViewSet(viewsets.ModelViewSet):
    
        queryset = Account.objects.all()
        serializer_class = AccountSerializer
        permission_classes = [IsAccountAdminOrReadOnly]
  3. La ModelViewset perform_create() méthode. La Documentation

    class 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 avons-nous besoin d'utiliser chaque create() /perform_create() fonction??. D'autre part, j'ai trouvé quelques compte que deux de créer des méthodes ont été appelés pour une seule requête post le modelviewset de create() et sérialiseur de create().

Espérons que quelqu'un voudrais partager une partie de leurs connaissances pour expliquer et ce sera sûrement très utile dans mon processus de développement.

InformationsquelleAutor Roel | 2016-12-12