Cloudinary 在 Django 中显示不正确的 url

Posted

技术标签:

【中文标题】Cloudinary 在 Django 中显示不正确的 url【英文标题】:Cloudinary shown incorrect url in Django 【发布时间】:2021-07-06 15:34:36 【问题描述】:

我创建了一个将img 上传到 cloudinary 的模型,但是,在 Django 模板中显示了错误的 URL,其中包含 2 个“https://”部分。请帮忙。

models.py:

class Product(models.Model):
 img = models.ImageField(upload_to='product', height_field=None, width_field=None, max_length=100,
                        default='https://res.cloudinary.com/dgdhnbsae/image/upload/vxxxx/product/xxxx.jpg')

def get_img(self):
    return f"'/media/product/'+self.img"

我已经按照教程设置了相关配置

setting.py:

INSTALLED_APPS = [
xxxx
'cloudinary_storage',
'cloudinary',

]

CLOUDINARY_STORAGE = 
'CLOUD_NAME': 'xxxx',
'API_KEY': 'xxxxx',
'API_SECRET': 'xxxxx'

DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'

模板:

<div class="featured__item__pic set-bg" data-setbg=" product.img.url ">

输出:

https://res.cloudinary.com/xxxx/image/upload/v1/media/https://res.cloudinary.com/vxxxx/image/upload/xxxxx/xxxxx.jpg

【问题讨论】:

请显示视图,尤其是上下文 【参考方案1】:

如果我正确理解了您的问题, 您需要进行以下更改

在你的 model.py 文件中,在下面添加

from cloudinary.models import CloudinaryField

您不想使用内置函数上传图片,而是使用 cloudinary 函数。 例如:

img = CloudinaryField('attributes')

您以后可以像往常一样在视图中调用它,然后将其传递给您的 django 模板。或者您可以使用 cloudinary 模板调用,这将允许您将其他图像处理选项解析到 url 字符串中。

一些参考资料: https://jszczerbinski.medium.com/django-web-app-and-images-cloudinary-straightforward-study-ae8b5bb03e37

更简单的参考: https://alphacoder.xyz/image-upload-with-django-and-cloudinary/

【讨论】:

以上是关于Cloudinary 在 Django 中显示不正确的 url的主要内容,如果未能解决你的问题,请参考以下文章

使用 markdown 和 cloudinary 的 django 应用程序

Django cloudinary 图像如何在模板 % % 标签中添加 onClick 事件?

将 Cloudinary 图像上传链接到 Django 模型字段

django cloudinary 通过 url 上传远程图像 - 文件名无效

CarrierWave/Cloudinary 缓存的图像在开发环境中无法跨表单重新显示

显示来自 cloudinary 的 PDF