在Django模板中渲染不同的图像格式

时间:2014-09-28 05:03:03

标签: python django django-models django-templates

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

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

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

如何修改此项,以便在特定学生没有.jpg图像的情况下,提供.png?如果有一组多种图像格式怎么办?

1 个答案:

答案 0 :(得分:0)

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

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

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

Django中的媒体文件是上传到settings.py中指定位置的文件,其位置存储在数据库中以便于检索。