23
A
回答
44
让我们在settings.py
文件说你有:
SITE_URL='www.mydomain.tld/somewhere/'
SITE_NAME='My site'
如果你需要在一个或两个观点:
from django.shortcuts import render_to_response
from django.conf import settings
def my_view(request, ...):
response_dict = {
'site_name': settings.SITE_NAME,
'site_url': settings.SITE_URL,
}
...
return render_to_response('my_template_dir/my_template.html', response_dict)
如果您需要通过很多应用程序和/或视图访问它们,你可以编写一个上下文处理器来保存代码:
James有关于这个 online的教程。
一些有用的信息关于何时和如果上下文处理器可在这个网站上 here。
里面你my_context_processors.py
文件,你会:
from django.conf import settings
def some_context_processor(request):
my_dict = {
'site_url': settings.SITE_URL,
'site_name': settings.SITE_NAME,
}
return my_dict
在
settings.py
后退,这样做激活它:
TEMPLATE_CONTEXT_PROCESSORS = (
...
# yours
'my_context_processors.some_context_processor',
)
在你views.py
,做一个视图中使用它像这样:
from django.shortcuts import render_to_response
from django.template import RequestContext
def my_view(request, ...):
response_dict = RequestContext(request)
...
# you can still still add variables that specific only to this view
response_dict['some_var_only_in_this_view'] = 42
...
return render_to_response('my_template_dir/my_template.html', response_dict)
2
如果你只需要一对或两对一对夫妇视图,上下文处理器可能是矫枉过正,因为它会将它们添加到您的应用程序中的所有视图。但是如果它在很多模板中使用,竞争处理器就是要走的路。
对于简单的一关的情况下只是通过任何设置,您从视图模板需要:
from django.conf import settings
from django.shortcuts import render_to_response
def some_view(request):
val = settings.SAVED_SETTING
return render_to_response("index.html", {
'saved_setting':val
})
,并通过在你的模板访问设置:
{{ saved_setting }}
4
如果使用类基于查看:
#
# in settings.py
#
YOUR_CUSTOM_SETTING = 'some value'
#
# in views.py
#
from django.conf import settings #for getting settings vars
class YourView(DetailView): #assuming DetailView; whatever though
# ...
def get_context_data(self, **kwargs):
context = super(YourView, self).get_context_data(**kwargs)
context['YOUR_CUSTOM_SETTING'] = settings.YOUR_CUSTOM_SETTING
return context
#
# in your_template.html, reference the setting like any other context variable
#
{{ YOUR_CUSTOM_SETTING }}
相关问题
- 1. GWT用Django模板设置变量值
- 2. 使用django模板生成django模板
- 3. Django提高模板DoesNotExist当我使用多个设置模块
- 4. 配置django设置以使用1.4.1。加载模板错误
- 5. Django的:使用Django模板
- 6. 使用Django模板
- 7. 使用Django模板
- 8. Django项目模板加载器设置
- 9. 如何在django模板中设置变量(使用set标签)?
- 10. 使用API设置AngularJS模板javascript
- 11. 在Django模板使用spaceless
- 12. 使用JSON的Django模板
- 13. 使用boolan在Django模板
- 14. 使用_set.all的Django模板
- 15. 的Django 1.11模板使用
- 16. Django设置模块
- 17. 我可以使用django模板呈现django模板吗?
- 18. 如何在使用sendgrid API的django中使用设计模板?
- 19. 在Django模板中设置和重置变量的值
- 20. Django - 设置和使用网站范围内的变量以用于模板
- 21. django通用模板
- 22. 有没有办法在django模板中使用变量设置块的名称?
- 23. 在Eclipse中设置模板
- 24. 设置控件模板[WPF]
- 25. 从模板设置noindex - Yoast
- 26. phalcon设置视图模板
- 27. 如何将自定义属性设置为可以在Django中使用ModelForm的模板中使用的模型?
- 28. 如何在模板中使用Django自定义模板标签?
- 29. Django模板:在模板标签中使用双大括号
- 30. 如何使用angular和django呈现模板内部的模板
我想在我的基本模板中使用这些设置,从其他所有其他继承,我有点拉兹年。 有什么办法可以使默认行为,使render_to_response将使用RequestContext而不是只是一个上下文?如果我可以帮忙的话,我不想在整个代码中添加相同的参数。 – Roger 2010-08-07 14:05:11
你可以在render_to_response上编写一个包装函数,它将请求作为附加参数,并在该函数中:tmp_dict = RequestContext(request),tmp_dict.update(response_dict)return render_to_response('... html',tmp_dict) - 这可能让你更容易地通过搜索和替换操作改变你的代码 – Geradeausanwalt 2010-08-07 14:55:01
这很好,谢谢大家。 – Roger 2010-08-08 13:29:00