我有以下自定义包含标记:
from django.template import Library
from django.db.models import Count
register = Library()
@register.inclusion_tag('projects/work_part.html', takes_context=True)
def project_list(context):
return {'projects':context['projects']}
我的设置如下:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'context_processors.default_processors',
)
我需要在work_path.html模板中访问MEDIA_URL,但似乎上下文处理器未应用于自定义模板。
如何在模板标签中访问MEDIA_URL?我看到这篇文章:Access STATIC_URL from within a custom inclusion template tag但是我没有使用STATIC_URL,是否还有另外一组我应该加载的标签?
答案 0 :(得分:12)
对于那些希望“加载媒体”的人来说,get_media_prefix标签是静态的...
{% load static %}
...
<img class="img" src="{% get_media_prefix %}{{ obj.image }}" alt="{{ obj.name }}" />
答案 1 :(得分:5)
您可以使用tempatetag {% get_media_prefix %}
STATIC_URL
一样)
答案 2 :(得分:0)
或者您可以忽略这些模板标记并立即使用MEDIA_URL
变量。来自settings.py
的所有变量都可以从模板HTML中访问。
<img class="img" src="{{ MEDIA_URL }}{{ obj.image }}" alt="{{ obj.name }}" />