我正在开发我的第一个Django项目,我的模板设置了一个基础,其他所有项目都扩展了。在该基础中,我希望有一些特定于用户的导航,这意味着从数据库中加载一些值以构建下拉菜单的内容。但是我不想在每个视图中都这样做。来自Symfony2 / Twig我通常会使用子请求来执行此操作,其中我告诉模板呈现视图并且将使用它自己的模板。使用如下语法:
{% render 'Bundle:Controller:action' with {} %}
我如何用Django完成同样的事情?我已经阅读了几次文档,但找不到任何方法可以做到这一点。
答案 0 :(得分:0)
您有两种方法:
(优于) - 将代码添加到base.html(您总是扩展的代码),并在需要时仅覆盖它。
或
(差) - 在每个模板中使用{%include%}来包含您的menus.html模板。
更新:重新阅读您的问题:您可以在上下文处理器中修改请求,这样您的base.html就可以获得此信息。
答案 1 :(得分:0)
Custom template tags就是你想要的。