任何人都可以提供一个关于使用tastypie 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()
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用curl创建一个foo对象,例如,
>>> curl -F "body=test" -F "img=@local_img.png" http://localhost:8000/api/0.1/foo/
Run Code Online (Sandbox Code Playgroud)
已成功创建foo对象,但该img字段为null.我可以在调试器中看到,保存bundle对象时确实有一个包含InMemoryUploadedFile对象的img字段,所以请求可能没问题.我哪里做错了?代码片段是最受欢迎的,谢谢!
我正在为Django网站创建一个RESTful api.我正在使用tastypie来做这件事.我的问题是我无法设计如何通过此api发布图像或文件.我的意思是,要在数据库上创建一个对象,我们将以json格式发布数据.但是我如何将文件放在json中呢?
我发现有两种方法,其中一种是将它们转换为Base64格式.我不想使用它,因为在我的测试中,当转换为Base64时,74kb的图像是110kb-120kb.
所以有人可以解释我如何发布一个包含文件的对象?