So löschen Sie ein Objekt mit Django Rest Framework

7

Ich versuche, eine RESTful-API für meine Event-Planungsanwendung mit Django Rest Framework zu schreiben, aber ich habe einige Probleme, wenn ich Views verwende, die die HTTP-Methode GET nicht erwarten. Ich habe das Tutorial auf der DRF-Seite gelesen. Was ich nach dem Lesen des Tutorials und der klassenbasierten Ansichtsdokumentation auf der Django-Site verstehe, ist, dass, wenn es eine klassenbasierte Ansicht wie diese gibt (aus dem DRF-Tutorial entnommen)

%Vor%

Die verschiedenen Methoden in der Ansicht entsprechen den verschiedenen HTTP-Request-Methoden. Also, wenn ich www.foo.com/bar habe, würde es zwei verschiedene Dinge tun, basierend darauf, welche Anfrage-Methode an diese Adresse gesendet wird. Das bedeutet, dass ich nichts anderes angeben müsste, da die ausgeführte Funktion anhand der Methode bestimmt wird, mit der die URL gesendet wird. Ist das korrekt?

Ich habe diese Ansicht, die ich nach dem Beispiel auf der DRF-Seite zu modellieren versuchte

%Vor%

, das diesen URLs zugeordnet ist

%Vor%

was ich versuche zu testen mit CURL mit diesem Befehl (wie hier vorgeschlagen DELETE mit CURL mit codierter URL )

%Vor%

Dies scheint zu tun, was es sollte:

%Vor%

Aber der aktuelle Datensatz wurde nicht aus meiner Datenbank gelöscht

Gibt es hier etwas, das ich vergessen habe, um diese richtig funktionieren zu lassen?

    
user3282276 18.10.2014, 23:05
quelle

2 Antworten

16

Du bist überflüssig. Die HTTP-Methode ist bereits DELETE , also gibt es keine /events/delete in der URL. Versuchen Sie Folgendes:

%Vor%

Standardmäßig erstellt der DRF-Router detaillierte URLs in /event/<pk> und Sie GET , PUT , POST und DELETE , um sie abzurufen, zu aktualisieren, zu erstellen bzw. zu löschen.

    
Kevin Stone 18.10.2014, 23:30
quelle
2

Wie von Kevin Stone erwähnt, ist das von Ihnen verwendete Muster nicht ratsam, aber wenn Sie es verwenden möchten, müssen Sie den Tippfehler in Ihren URLs für die Ereignisse / delete / Zuordnung.

%Vor%

sollte sein:

%Vor%     
Steven Laroche 19.10.2014 03:16
quelle