【问题标题】:Can you refer to more than one base template in django?你能在 django 中引用多个基本模板吗?
【发布时间】:2017-12-25 10:18:42
【问题描述】:

我有一个带有一个名为“base.html”的基本模板的 Django 应用程序。此模板提供网站中所有页面的外观。在许多(尽管不是全部)这些页面上,我想从我的数据库中提取数据并以一致的格式显示它。我想以不同的基础创建该格式的模板,例如“base2.html”。这意味着在我展示数据的页面上,我需要同时扩展“base.html”和“base2.html”。如何从同一页面上的两个 html 页面扩展?

【问题讨论】:

  • 我想你会想使用{% include 'template.html' %}标签。

标签: django templates extend


【解决方案1】:

我会试试这个,

在您想要不同基础的视图中,我会像这样在请求数据中发送一个密钥

在views.py中

def some_view_one(request):
    different_base =  "base1.html"
    return render(request, 'customer/parent_template.html', {'different_base': different_base})

def some_view_two(request):
    different_base =  "base2.html"
    return render(request, 'customer/parent_template.html', {'different_base': different_base})

在 parent_template.html 的第一行。

{% extend different_base %}

请注意,view_one 将扩展 base1.html,view_two 将扩展 base2.html

没试过。

请告诉我。

【讨论】:

  • 这是有道理的。简而言之,您正在创建两个基地。当您不从数据库中提取数据时使用一个基数,当您从数据库中提取数据时使用一个基数。然后你根据需要从一个或另一个基地延伸。这是一个很好的解决方案。谢谢。
  • 请让我知道它是否有效。我们也可以使用模板标签来实现这个功能。但这需要对场景有更多的了解。
  • 这在您提取数据一次时有效。就我而言,我在数据库中有文章,这些文章具有标题、作者、发布日期等属性。当我在网页上发布此信息时,我希望每篇文章的信息出现在自己的框中,并且我希望该框以统一的方式格式化(框的 CSS/HTML 应该是模板)。我的问题是我不能将框放在基本模板中,然后从该模板扩展,因为当我使用 for 循环显示文章信息时,我需要一遍又一遍地显示该框。
猜你喜欢
  • 1970-01-01
  • 2019-09-03
  • 2010-09-25
  • 2014-11-20
  • 2021-06-15
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 2017-08-13
相关资源
最近更新 更多