Wie kann ich mit dem Django Rest Framework einen anderen Serializer für die Listen- und Detailansicht einstellen?

8

Wie stelle ich einen anderen Serializer für die Listen- und Detailansicht ein, während ich viewsets.ModelViewSet und HyperlinkedSerializer verwende?

Ich sehe, wie man es mit viewsets.ViewSet macht, indem man list und retrive definiert ( hier ist ein Beispiel ), aber ich kann es nicht elegant an viewsets.ModelViewSet

anpassen     
andilabs 17.07.2014, 17:18
quelle

3 Antworten

18

Ich habe eine Antwort von " Django angepasst rest framework, benutze verschiedene Serialisierer im selben ModelViewSet "das mir sehr gut tut, und ich hoffe du findest nützlich:

%Vor%

In diesem Fall geben Sie nur Ihre zwei Serialisierer an und verwenden den je nach Aktion. Dies kann jedoch allgemeiner (für alle Aktionen) wie folgt gemacht werden:

%Vor%     
bbengfort 05.06.2015, 15:39
quelle
1

Viewsets erweitern die Klasse GenericAPIView, so dass Sie diesen Teil der Dokumentation um dein Problem zu lösen. Im Grunde müssen Sie get_serializer_class überschreiben und einen anderen Serializer basierend auf Ihrer Anfrage zurückgeben.

    
AdelaN 22.07.2014 11:20
quelle
0

Ich habe dieses kleine Paket für diesen Job erstellt. drf_custom_viewsets .

Es hat CustomSerializerViewSet , das von ModelViewSet erbt, wodurch Sie verschiedene Serializer für verschiedene Aktionen einstellen können.

    
Darwesh 24.06.2016 09:32
quelle

Tags und Links