使用Django模板作为片段

Tim*_*mar 3 google-app-engine django-templates

是否可以创建一个可以在另一个django模板中使用(嵌套)的django模板?我知道这个extends命令,但我认为这不是我想要的.也许我只是不知道如何让它适应这种情况.让我举个例子.

在大多数webapps中显示用户的登录状态是很常见的,我正在寻找一种方法来将这个逻辑(带有相应的"欢迎Mr. Foo"和"需要注册?")放到一个小模板中,像这样:

loginstatus.html

{% if LoggedIn %}
    Message message link link
{% else %}
    Other message different link
{% endif %}
Run Code Online (Sandbox Code Playgroud)

现在,我想我将不得不调用渲染引擎并将此输出存储到变量中,然后在渲染时将其传递给基本模板,以便我的基本模板如下所示:

的index.html

<html>
  <head>
  </head>
  <body>
    <div id="Header">{{ LoginStatus }}</div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在,我知道这是一个相当蹩脚的例子,它只为我节省了5行,但我设想这样做是为了根据用户的角色创建导航栏,显示关于用户位置或所选兴趣的新闻源等.

所以,简而言之,是否有可能(因为我无法让它如何设想)预渲染django模板,然后将渲染的html包含到另一个django模板中?

我认为这不重要,但我也在使用Google App Engine,如果这改变了什么.

Dan*_*man 6

对于该特定示例,您可以使用include标记包含代码段.

对于导航栏和新闻源,自定义模板标签(特别是包含标签)会更合适.