sha*_*aka 9 python django templates view base
我试图将变量(浏览器变量)传递给我的应用程序中的所有模板.有关如何使其工作的任何建议?
视图:
def browser(request):
primary_cat_list = Categories.objects.order_by("category")
subcat_list = SubCategories.objects.order_by("sub_category")
product = Productbackup.objects.order_by("website")
browser = list(chain(primary_cat_list, subcat_list, product))
return render_to_response('reserve/templates/base.html', locals(), context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
模板:
{% for prod in browser %} {{ prod }}, {% endfor %}
Run Code Online (Sandbox Code Playgroud)
fis*_*000 13
你,我的朋友,在Context Processors市场.
什么是模板上下文处理器?
Django的上下文处理器是一种允许您为模板提供数据和回调的工具.
您可以通过以下两种方式之一完成此操作:
- 在单个请求的基础上:通过将自定义
Context值传递给您的render_to_response()呼叫- 全局:通过创建一个上下文处理器方法,接受一个
HttpRequest对象作为输入,并返回一个有效负载或回调,然后在你的内容中注册上下文处理器settings.py,然后render_to_response()使用内置RequestContext属性而不是你自己的属性提供你的调用(你可以随时扩展RequestContext到当然,在个别请求的基础上添加更多数据).如果将数据传递给模板的方法对你来说听起来很荒谬和混淆,那么你并不孤单.这种简单操作所涉及的复杂性是没有根据的,适得其反,但每个系统都有其缺点.
官方文档在这里:
https://docs.djangoproject.com/en/dev/ref/templates/api/
所以但是,是的,我已经用Django编程了一段时间,而且我之所以喜欢解决问题的原因之一是因为它的复杂性几乎是拜占庭式的,而不是以一种霸气的方式.它有大量的geegaws和doodads可能不会立即显得有用; 当你需要它们时,它们中的每一个都非常方便,如果不是这样的话,它将会不受欢迎.
这里的结果是:上下文处理器就是这方面的一个很好的例子.是.
| 归档时间: |
|
| 查看次数: |
7765 次 |
| 最近记录: |