Django - 如何使用用户上传的图像加载网站创建的图像?

时间:2017-10-02 08:29:53

标签: python django image python-imaging-library

对于用户上传的任何图片,我正在生成缩略图。用户上传的图像和缩略图都是这样存储的。

 media_cdn (folder)
  -user_name_1 (folder)
  -user_name_2 (folder)
  --post_1_title_slug (folder)
  ---300x180 (folder)
  ----300x180_user_uploaded_image_1.png
  ---user_uploaded_image_1.png
  --post_2_title_slug (folder)
  -user_name_3 (folder)

由于我在模型中使用ImageField,我可以在模板中轻松使用{{ appname.image.url }},但这会加载上传的图像。我想加载缩略图。

我在stackoverflow上搜索,大多数人都说要使用{{ MEDIA_URL }},例如here

我倾向于{{ MEDIA_URL }},因为将来网站会根据相同的用户上传图片生成更多图片。

我现在正在使用它,

<img src='{{ MEDIA_URL }}/{{user.username}}/{{ upload.slug }}/300x180/300x180_{{ upload.get_filename }}'>

这是在页面中给出的,(来自Inspect元素)

/user_name/file_slug/300x180/300x180_image_name.png

{{ MEDIA_URL }}未提供正确的网址。

FYI,

get_filename来自models.py,我写这个来获取文件名

    def get_filename(self):
        return(os.path.basename(self.image.name))

我该怎么做才能做到这一点? 我正在使用Django 1.11.5Pillow 4.2.1

0 个答案:

没有答案