【问题标题】:Rendering different image formats in Django template在 Django 模板中渲染不同的图像格式
【发布时间】:2014-11-22 18:40:39
【问题描述】:

在我的 Django 项目中,我有一个模板,我必须在其中上传与动态实例对应的图像。例如:对应于一个学生模型,我有一个模板,这样我就可以在一个唯一的 url 上提供每个学生的信息(包括个人资料照片),即/student/student_X。现在对于一些学生来说,我有一个 .jpg 图像,而对于其他学生来说,我有一个 .png 图像。目前我刚刚对模板进行了硬编码,以便通过以下方式仅处理 .jpg 图像。

<img src="{{ MEDIA_URL }}students/images/{{ student.slug }}.jpg">

其中student 是传递给模板的上下文。

我该如何修改它,以便在特定学生没有可用的 .jpg 图像时,提供 .png 图像?如果有一组多种图像格式怎么办?

【问题讨论】:

    标签: python django django-models django-templates


    【解决方案1】:

    在继续之前阅读此内容,因为了解媒体/静态文件及其差异在 Django 中非常重要。 http://blog.doismellburning.co.uk/2012/06/25/django-and-static-files/

    事实上,您的方法可以大大简化。如果在您的模型中使用 Django ImageField,则文件的位置存储在您的数据库中,无需区分图像类型。

    在不知道如何存储这些文件并在视图中调用学生的情况下,没有其他方法可以提供帮助,但是如果您从学生模型对象调用字段,则可以将整个学生传递给上下文变量并调用 slug像这样-

    Django中的媒体文件是上传到settings.py中指定位置的文件,该位置存储在db中方便检索。

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 1970-01-01
      • 2017-04-26
      • 2014-01-25
      • 2016-06-07
      • 2017-08-06
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      相关资源
      最近更新 更多