【问题标题】:Templates - menu模板 - 菜单
【发布时间】:2013-01-08 21:32:12
【问题描述】:

如何为不同的应用程序(例如,app1、app2 等)使用下面的相同菜单列表(即模板库)
我想我要问的是当我在 app1 中时,我喜欢看到这个:

<ul>
   <li><a href="/app1/" class="home">Home</a></li>
   <li><a href="/app1/help" class="help">Help</a></li>
</ul>

在 app2 中时:

<ul>
   <li><a href="/app2/" class="home">Home</a></li>
   <li><a href="/app2/help" class="help">Help</a></li>
</ul>

非常感谢。

PS:我尝试了{{ request.path }}{{ request.get_full_path }} 无济于事。

【问题讨论】:

  • 我不明白 TEMPLATE_DIRS 与任何东西有什么关系 - 与 URL 或链接无关。
  • 你说得对,我也删了,但还是不知道怎么实现。
  • 当你写“应用程序”时,你的意思是你项目的应用程序?还是不同的站点实例?
  • 我的意思是应用我的项目。

标签: python django django-forms django-templates


【解决方案1】:

你可以这样做,

<!-- project/templates/base.html -->
<html>
  ...
  <ul>
      {% include 'fragments/own_menu.html' %}
  </ul>
  ...
</html>

并在每个应用程序的模板文件夹中放置一个名为fragments/own_menu.html 的模板。例如

app1
   templates/
     fragments/
         own_menu.html

代码应该是这样的:

<li><a href="/app1/" class="home">Home</a></li>
<li><a href="/app1/help" class="help">Help</a></li>

您的应用程序2:

app2
   templates/
      fragments/
         own_menu.html

代码应该是这样的:

<li><a href="/app2/" class="home">Home</a></li>
<li><a href="/app2/help" class="help">Help</a></li>

当您呈现子模板时,将首先在当前应用中搜索“fragments/own_menu.html”。

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2016-07-22
    • 2012-04-26
    • 1970-01-01
    • 2011-11-13
    • 2021-10-20
    • 2020-02-02
    • 1970-01-01
    • 2018-10-20
    相关资源
    最近更新 更多