关于Django:Django – 通过上传小工具保存Cloudinary对象

Django - Save Cloudinary Object via Upload Widget

我正在尝试设置Cloudinary的上载小部件,并将生成的Cloudinary objet保存到我的模型上的CloudinaryField()。Cloudinary的示例项目只显示了如何使用{{form}}上传图像。

当我使用这个小部件上传的时候,我得到了一本字典,但是我在文档中找不到任何可以让我保存它的地方。


上载小部件具有包含通知URL的选项,可以在上载预设设置中进行配置。此通知URL将返回对服务器终结点的响应,该响应可用于保存图像模型。

要从上载响应生成必要的cloudinaryfield,可以使用cloudinaryresource对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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