2

我正在处理我的第一个 Django 项目,并使用所有其他项目扩展的基础设置我的模板。在那个基础上,我想要一些特定于用户的导航,这意味着从数据库中加载一些值来构建下拉菜单的内容。但是我不想在每个视图中都这样做。来自 Symfony2/Twig 我通常会使用子请求来执行此操作,在该子请求中我告诉模板渲染视图并且将使用它自己的模板。使用如下语法:

{% render 'Bundle:Controller:action' with {} %}

我将如何用 Django 完成同样的事情?我已经阅读了几次文档,但找不到任何方法来做到这一点。

4

2 回答 2

0

你有两种方法:

(更好)- 将代码添加到 base.html(您一直在扩展的那个),并且仅在需要时才覆盖它。

或者

(更糟) - 在每个模板中使用 {% include %} 来包含您的 menus.html 模板。

更新:重新阅读您的问题:您可以在上下文处理器中修改请求,以便您的 base.html 将获得此信息。

于 2012-06-09T17:45:08.417 回答
0

自定义模板标签是您想要的。

于 2012-06-09T17:45:49.760 回答