Django模板:model.image.url获取相对url,如何获取完整的域url?

时间:2016-05-19 17:28:42

标签: python django

我是Django的新手,我一直试图让我的图像显示在我正在建立的网站上。

在我的模板上,我使用<img src="{{ model.image.url }}" />,我得到MEDIA_URL + IMAGE_PATH

像这样:upload/gallery/zips/thumbnails/zips.pngupload/MEDIA_URL

如何让我的网址看起来像http://127.0.0.1:8000/upload/gallery/zips/thumbnails/zips.png,而不必像这样添加: <img src="http://127.0.0.1:8000/{{ gallery.thumbnail.url }}" />

很抱歉,如果这是有史以来最愚蠢的问题。

2 个答案:

答案 0 :(得分:0)

您可以使用请求对象添加媒体网址:

<img src="{{ request.get_host }}{{ model.image.url }}" />

*注意 - 您要确保模板上下文处理器中有request

'django.template.context_processors.request'

答案 1 :(得分:0)

您可以通过self.request._current_scheme_host

查找首页网址

例如,您可以在类基础视图中像这样获得它。

class SampleView(TemplateView):
   def get_context_data(self, **kwargs):
       context = super().get_context_data(**kwargs)
       context['host'] = self.request._current_scheme_host
       return context

在模板中

{{ host }}{{ model.image.url }}

显示https://example.com/sample.jpg