一尘不染

Django-tastypie:关于在POST中上传文件的任何示例?

django

Django-tastypie:关于在POST中上传文件的任何示例?任何人都可以在服务器端和客户端两个方面提供有关使用Deliciouspie 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()

如果我尝试使用curl创建foo对象,例如,

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

已成功创建foo对象,但该img字段为null。我可以在调试器中看到,保存捆绑对象时确实有一个包含InMemoryUploadedFile对象的img字段,因此请求可能还可以。我在哪里做错了?欢迎使用代码段,谢谢!


阅读 355

收藏
2020-03-30

共1个答案

一尘不染

你的资源应如下所示:

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

attribute应与该领域的典范。如文档中所述:

ApiField。属性

命名由Resource包装的对象的实例属性的字符串。

2020-03-30