from django.conf import settings # import the settings file
def admin_media(request):
# return the value you want as a dictionnary. you may add multiple values in there.
return {'ADMIN_MEDIA_URL': settings.ADMIN_MEDIA_PREFIX}
将上下文处理器添加到settings.py文件:
TEMPLATES = [{
# whatever comes before
'OPTIONS': {
'context_processors': [
# whatever comes before
"your_app.context_processors.admin_media",
],
}
}]
我发现最简单的方法是使用单个custom template tag:
用法:
如果使用Django内置的泛型视图或在
render_to_response
快捷函数中传入上下文实例关键字参数,Django将提供对模板的某些常用设置常量(如settings.MEDIA_URL
)和某些语言设置的访问。下面是每个案例的一个例子:这两个视图都有几个常用的设置,如模板可用的
settings.MEDIA_URL
,如{{ MEDIA_URL }}
,等等如果要在设置中查找对其他常量的访问权限,只需解压缩所需的常量并将其添加到视图函数中使用的上下文词典中,如下所示:
现在您可以以
{{ favorite_color }}
的身份访问模板上的settings.FAVORITE_COLOR
。如果您希望每个请求模板都有一个值,那么使用context processor更合适。
以下是方法:
在应用程序目录中创建一个
context_processors.py
文件。假设我希望在每个上下文中都有ADMIN_PREFIX_VALUE
值:将上下文处理器添加到settings.py文件:
在视图中使用} shortcut 自动执行此操作:
RequestContext
将上下文处理器添加到模板中。^{最后,在您的模板中:
相关问题 更多 >
编程相关推荐