如何在Django模板中将div的图像URL设置为其背景

时间:2015-07-18 08:23:05

标签: python django django-models django-templates

我的模板中有以下代码,我想动态设置来自django视图的后台网址值

<div class="profpic" style="background:url('{{ MEDIA_URL }}{{ objects.profpicpath }}');background-size:cover">
</div>

这给出了来自浏览器中源代码的输出,如下所示

<div class="profpic" style="background-image:url('/UsersOpr/documents/documents/20150718/bd55adcd-9360-4a05-b506-18373805b600_20150718_152906.jpg');background-size:cover">
</div>

SO,

{{ MEDIA_URL }} is rendered with value '/UsersOpr/'

{{ objects.profpicpath }} with value 'documents/documents/20150718/bd55adcd-9360-4a05-b506-18373805b600_20150718_152906.jpg'

我还缺少什么?

这是我的 Settings.py

MEDIA_ROOT = '//192.xxx.xxx.xxx/d$/UsersOpr/'
MEDIA_URL = '/UsersOpr/'

我在互联网上广泛搜索如何设置从django视图动态填充并在django模板中呈现的图像URL,但无法通过 - 尝试使用{{STATIC_URL}},{{MEDIA_URL等等,和图像路径等。但无法得到

1 个答案:

答案 0 :(得分:1)

经过大量的搜索,我终于可以解决了。 认为这可能对通过媒体上传遇到此场景的人有所帮助。

Settings.py应该包含以下内容:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.template.context_processors.debug',
'django.template.context_processors.request',
"django.core.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.media",  # Mandatory for Media file uploads
"django.core.context_processors.static",
)

MEDIA_ROOT = '//ipaddress or localhost/.../media/'
MEDIA_URL = '/media/'

<强> urls.py

from django.conf import settings

if settings.DEBUG:
    urlpatterns += patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
    'document_root': settings.MEDIA_ROOT}))

在模板中调用时,它应该像

{{ MEDIA_URL }}{{ object.imagepath }} 

并确保媒体文件夹对访问图像对象的用户具有读取权限