我是Django和Web编程的新手。已使用Google搜索,但无法找到我需要的答案。这里的情况:Queryset在继承的Django模板中
我有一个网站,其中用户登录每个页面都有一定的导航菜单。这就是为什么他们扩展名为base_logged.html的模板,这也扩展了base.html。 问题在于导航菜单部分由数据库查询填充。
有没有在每个记录视图中填充查询的方法? 还是有点看继承?
对不起,我英文很差。
我是Django和Web编程的新手。已使用Google搜索,但无法找到我需要的答案。这里的情况:Queryset在继承的Django模板中
我有一个网站,其中用户登录每个页面都有一定的导航菜单。这就是为什么他们扩展名为base_logged.html的模板,这也扩展了base.html。 问题在于导航菜单部分由数据库查询填充。
有没有在每个记录视图中填充查询的方法? 还是有点看继承?
对不起,我英文很差。
您可以使用context processors(Here's a good example)。这些允许您在整个站点的每个视图中提供变量(查询集等)。例如,使文件在您的应用程序之一:
some_app.context_processors.my_context_processor.py
from some_app.models import Bar
def my_context_processor():
return {
'foo' : Bar.objects.all(),
}
,并在您settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
...
'some_app.context_processors.my_context_processor',
...
)
,你现在有权访问所有视图/模板:
{{ foo }}
这听起来不错。我会尝试一下,然后张贴我的经验。没关系,不是每个网页都会对查询有意义吗?因为查询基于用户... – lembon 2012-03-23 00:10:24
'... def my_context_processor(request): ...' – 2013-09-30 18:02:52