Könnte jemand ein vollständiges Beispiel zur Verwendung des tastypie Filefield, sowohl serverseitige und clientseitige bitte geben?Django-tastypie: Irgendein Beispiel zum Hochladen von Dateien im POST?
Hier ist, was ich versucht habe:
#models.py
class Foo(models.Model):
img = models.ImageField(upload_to="images", null=True, blank=True)
body = models.CharField()
#api.py
class FooResource(ModelResource):
img = fields.FileField(attribute="image", null=True, blank=True)
class Meta:
queryset = Foo.objects.all()
Wenn ich versuche, ein foo-Objekt mit curl zu erstellen, zB
>>> curl -F "body=test" -F "[email protected]_img.png" http://localhost:8000/api/0.1/foo/
Ein foo-Objekt erfolgreich erstellt wird, aber das img
Feld ist null . Ich kann in Debugger sehen, dass, wenn das Bündel Objekt in der Tat hat ein img Feld Speichern, die ein InMemoryUploadedFile
Objekt enthält, so dass die Anfrage ist wahrscheinlich in Ordnung. Wo mache ich mich falsch? Codefragmente sind sehr willkommen, danke!
Wenn ich das tue, erhalte ich die Fehlermeldung: 'Das Format angezeigt‚multipart/form-data‘hatte keine vorhanden Deserialisierung method.' ich einfach etwas fehle? –
Ich fand eine Lösung für die fehlende Deserialisierung Fehler [hier] (http://stackoverflow.com/questions/12522332/how-to-access-post-data-inside-tastypie-custom-authentication), basierend auf [diese Github Beitrag] (https://github.com/toastdriven/django-tastypie/issues/42#issuecomment-5485666). –