我是Django和Web编程的新手。谷歌搜索但找不到我需要的答案。情况就是这样:
我有一个网站,用户登录的每个页面都有一定的导航菜单。这就是他们扩展名为base_logged.html的模板的原因,该模板也在扩展base.html。 问题是导航菜单部分由数据库查询填充。
有没有办法填充这个而不在每个记录的视图中进行查询? 或者某种View继承?
抱歉我的英语很差。
答案 0 :(得分:3)
答案 1 :(得分:0)
您可以使用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 }}