lade Bild mit djangorestframework mit json nach imagefield hoch und teste dies mit CURL

8

Ich habe mehrere Apis in djangorestframework gemacht. Dies konnte ich sowohl mit der HTML-Form der API als auch mit curl in der Kommandozeile testen.

Jetzt habe ich eine API zu einem Model mit einem von den Feldern ein ImageField.

Ich kann nicht herausfinden, welcher Curl-Befehl verwendet werden soll. Unter Verwendung der Syntax, die ich vor den Post-Aktionen im JSON-Format verwendet habe, wäre dies:

%Vor%

In diesem Fall wird das Foto jedoch nicht gespeichert und bleibt leer (das Foto ist ein optionales Feld)

Hinzufügen von -T /home/michel/test.jpg Ich bekomme eine Fehlermeldung, dass 127.0.0.1:800/api/v1/test.jpg nicht als URL existiert.

In der Test-HTML-Form von djangorestframework funktioniert alles gut.

Mit der Option -F wird angegeben, dass ich nur eine Anfrage gleichzeitig ausführen kann ... Ich habe auch den Datentyp von Data-binary

entfernt

Kann jemand mir helfen, wie man diese Lockenpost mit dem Bild und den anderen Daten in json in Befehl 1 macht.

    
michel.iamit 09.07.2012, 15:52
quelle

1 Antwort

11

Nach einem langen Puzzle scheint das den Trick zu machen:

  • Setzen Sie alle Json-Argumente in separate -F -Argumente
  • verwenden Sie nur den Header Accept (nicht Content-Type )
  • Und geben Sie den Bildtyp
  • an
  • Verwenden Sie @ , um die lokale Datei anzugeben, die hochgeladen werden soll

    %Vor%

Übrigens, ich weiß, dass all das auf der Dokumentationsseite von curl steht, aber ich habe nur ein Beispiel von all diesen Dingen verpasst, da es viele Möglichkeiten gibt, es auszuprobieren.

    
michel.iamit 13.07.2012, 08:32
quelle