Django-tastypie: Любой пример загрузки файла в POST?

Может ли кто-нибудь дать полный пример использования Tashypie FileField, как на стороне сервера, так и на стороне клиента, пожалуйста?

Вот что я пробовал:

#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() 

Если я попытаюсь создать объект foo с помощью curl, например,

 >>> curl -F "body=test" -F "img=@local_img.png" http://localhost:8000/api/0.1/foo/ 

Объект foo успешно создан, но поле img равно null. В отладчике я вижу, что при сохранении объекта пакета действительно есть поле img, которое содержит объект InMemoryUploadedFile , поэтому запрос, вероятно, подходит. Где я поступаю неправильно? Фрагменты кода приветствуются, спасибо!

One Solution collect form web for “Django-tastypie: Любой пример загрузки файла в POST?”

Ваши ресурсы должны выглядеть так:

 class FooResource(ModelResource): img = fields.FileField(attribute="img", null=True, blank=True) class Meta: queryset = Foo.objects.all() 

attribute должен соответствовать полю в модели. Как указано в документации:

ApiField. атрибут

Строка, обозначающая атрибут экземпляра объекта, обернутого Ресурсом.

Python - лучший язык программирования в мире.