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 上传远程图像 - 文件名无效