Django -自定义包含模板标签MEDIA_URL



我有以下自定义包含标签:

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 ?我看到这篇文章:从自定义包含模板标签内访问STATIC_URL,但我不使用STATIC_URL,是否有另一组标签我应该加载?

get_media_prefix标签是静态的,对于我们这些想要"加载媒体"的人来说…

{% load static %}
...
<img class="img" src="{% get_media_prefix %}{{ obj.image }}" alt="{{ obj.name }}" />

您可以使用tempatetag {% get_media_prefix %}

来执行相同的操作(与STATIC_URL一样)

或者您可以忽略这些模板标记并立即使用MEDIA_URL变量。settings.py中的所有变量都可以从模板HTML中访问。

<img class="img" src="{{ MEDIA_URL }}{{ obj.image }}" alt="{{ obj.name }}" />

最新更新