我的模板中有以下代码,我想动态设置来自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等等,和图像路径等。但无法得到
答案 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 }}
并确保媒体文件夹对访问图像对象的用户具有读取权限