Django - 通过上传小部件保存Cloudinary对象

时间:2017-10-13 19:10:33

标签: django cloudinary

我正在尝试设置Cloudinary的上传小部件,并将生成的Cloudinary objet保存到我的模型上的CloudinaryField()。 Cloudinary sample project仅显示如何使用{{form}}上传图片。

当我使用小部件上传时,我会收到一本字典,但是在文档中找不到任何可以保存它的方法。

1 个答案:

答案 0 :(得分:3)

上传小部件可以选择包含通知网址,并且可以在上传预设设置中进行配置。此通知URL将返回对服务器端点的响应,该响应可用于保存图像模型。

要从上传响应生成必要的CloudinaryField,可以使用CloudinaryResource对象。

from cloudinary import CloudinaryResource

. . .

json_response = { "public_id": "test", "type": "upload", . . . }

# Populate a CloudinaryResource object using the upload response
result = CloudinaryResource(public_id=json_response['public_id'], type=json_response['type'], resource_type=json_response['resource_type'], version=json_response['version'], format=json_response['format'])

str_result = result.get_prep_value()  # returns a CloudinaryField string e.g. "image/upload/v123456789/test.png" 

# Save the result
p = Photo(title="title",image=str_result)
p.save()  # save result in database