2017-05-26 2 views
1

Ich habe einen Serializer, der von der Django Rest Framework Serializer ModelSerializer erbt.Override Serializer löschen Methode in Django RF

Um die create-Methode zu überschreiben, kann ich create neu definieren. Um die Update-Methode neu zu definieren, definiere ich update neu. Ich schaue jedoch durch den Code und kann die Methode zum Überschreiben zum Löschen nicht finden. Ich muss dies in dem Serialisierer tun, damit ich den löschenden Benutzer ergreifen kann.

Irgendwelche Gedanken würden geschätzt werden!

Antwort

1

Wenn Sie eine ModelViewSet verwenden, könnte man es in der Ansicht tun:

class YourViewSetClass(ModelViewSet): 

    def destroy(self, request, *args, **kwargs): 
     user = request.user # deleting user 
     # you custom logiC# 
     return super(YourViewSetClass, self).destroy(request, *args, **kwargs) 

Die Methode destroy so einfach ist (gerade einen Anruf(), um instance.delete), dass die Aktion nicht delegiert zum Serialisierer. Die Serializer in DRF dienen zum Aushandeln externer Repräsentationen zu/von Ihren Datenbankmodellen. Hier möchten Sie einfach ein Modell löschen.

+0

Ah perfekt, genau was ich brauchte! –

1

Ich denke, dass Sie das tun können, aber in der Ansichtsebene. Wenn Sie ModelViews verwenden, können Sie die destory method oder perform_destroy überschreiben und Ihre Geschäftslogik hinzufügen.