Django模板中的子请求

时间:2012-06-09 17:37:44

标签: django

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

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

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

2 个答案:

答案 0 :(得分:0)

您有两种方法:

(优于) - 将代码添加到base.html(您总是扩展的代码),并在需要时仅覆盖它。

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

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

答案 1 :(得分:0)

Custom template tags就是你想要的。