1
yanng 2012-08-19 20:37:06 +08:00 2
不知你是否注意到了,在每个template中,都可以通过{{ user }} 获取到request.user,还可以通过{{ MEDIA_URL }} 获取到settings.py中定义的settings.MEDIA_URL。
它是通过定义processor实现的,具体来说,就是自定义一个processor函数,此函数接受request作为参数,返回一个dict,然后将此函数放入settings.py中的TEMPLATE_CONTEXT_PROCESSORS元组中,就可以在每个传入context_instance 为RequestContext实例的view所对应的template中获取到该变量。 对于你这种情况,processor函数如下: def site_name(request): """ Adds SITE_NAME context variables to the context. """ return {'SITE_NAME': settings.SITE_NAME} 你可以参考下我的blog: http://www.nerdyang.com/2012/04/19/django-template%E4%B8%AD%E7%9A%84context/ |
2
qdvictory 2012-08-19 20:47:24 +08:00
很easy,settings.py里面写SITE_NAME='v2ex'
用的时候 from django.conf import settings settings.SITE_NAME |
3
qdvictory 2012-08-19 20:51:44 +08:00
理解错了,删不了了- -
|
4
kuno 2012-08-19 22:08:42 +08:00
可以试试django 的 context processor
https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS |
5
vicalloy 2012-08-20 10:55:30 +08:00
和kuno说的一样,使用context processor。
另外我针对这个情况有写一个Django tag。 https://github.com/vicalloy/django-helper/blob/master/djangohelper/templatetags/djangohelper_tags.py 使用方法: """ {% load djangohelper_tags %} {% get_setting "key" default_val "as_key" %} {{ as_key }} """ |