如何使用 Cloudinary 在 Django 项目中强制使用 HTTPS?

How to force HTTPS in a Django project using Cloudinary?

我在我的 Django 项目中使用 Cloudinary 来上传和存储我的图像。

像这样:

class MyModel(models.Model):
    logo = CloudinaryField('Logo', blank=True, null=True)

在我的序列化程序中,如果我调用如下内容:

mymodel = MyModel.objects.get(pk=1)
return mymodel.logo.url

返回的是云 url 但仅限于 http。我该如何解决?我如何获得 https?

Cloudinary 响应包含 url (HTTP) 和 secure_url (HTTPS)。

请尝试:

return mymodel.logo.secure_url

而不是

return mymodel.logo.url

对于在使用 secure_url 时出现错误的任何人,修改 url_options 字典对我来说是个窍门:

mymodel = MyModel.objects.get(pk=1)
# Adding 'secure' to url_options
# Cloudinary source code seems to look for this key when building urls
mymodel.logo.url_options.update({'secure':True})
return mymodel.logo.url

在设置中设置secure:

cloudinary.config(cloud_name = "", api_key = "", api_secret = "", secure = True)