我在settings.py中有一些东西,我希望能够从模板访问,但我不知道如何做到这一点。我已经试过了
{{CONSTANT_NAME}}
但这似乎并不管用。这个是可能的吗?
发布于 2009-01-11 17:28:51
如果使用Django内置的通用视图或在render_to_response
快捷方式函数中传入上下文实例关键字参数,django提供对模板的某些常用设置常量的访问,比如settings.MEDIA_URL
和一些语言设置。下面是每种情况的一个示例:
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.views.generic.simple import direct_to_template
def my_generic_view(request, template='my_template.html'):
return direct_to_template(request, template)
def more_custom_view(request, template='my_template.html'):
return render_to_response(template, {}, context_instance=RequestContext(request))
这两个视图都有几个常用的设置,如作为{{ MEDIA_URL }}
提供给模板的settings.MEDIA_URL
等。
如果您希望访问设置中的其他常量,则只需解压缩您想要的常量并将它们添加到您在视图函数中使用的上下文字典中,如下所示:
from django.conf import settings
from django.shortcuts import render_to_response
def my_view_function(request, template='my_template.html'):
context = {'favorite_color': settings.FAVORITE_COLOR}
return render_to_response(template, context)
现在您可以在模板上以{{ favorite_color }}
的身份访问settings.FAVORITE_COLOR
。
发布于 2011-10-11 00:58:19
我发现最简单的方法是使用单个custom template tag
from django import template
from django.conf import settings
register = template.Library()
# settings value
@register.simple_tag
def settings_value(name):
return getattr(settings, name, "")
用法:
{% settings_value "LANGUAGE_CODE" %}
发布于 2014-09-15 12:54:35
查看django-settings-export
(免责声明:我是此项目的作者)。
例如..。
$ pip install django-settings-export
settings.py
TEMPLATES = [
{
'OPTIONS': {
'context_processors': [
'django_settings_export.settings_export',
],
},
},
]
MY_CHEESE = 'Camembert';
SETTINGS_EXPORT = [
'MY_CHEESE',
]
template.html
<script>var MY_CHEESE = '{{ settings.MY_CHEESE }}';</script>
https://stackoverflow.com/questions/433162
复制相似问题