【问题标题】:Django template's "extends" tag does not workDjango 模板的“扩展”标签不起作用
【发布时间】:2018-07-31 09:44:46
【问题描述】:

我也在这里检查了类似的问题,但我的问题不是其中之一。实际上,我并没有收到具体的错误,而是从字面上得到了任何东西。

我有一个名为 dashboard.html 的主模板,它位于项目级模板文件夹中。我有一个这样的块;

*** some code here ***

<li class="nav-item">
    <a class="nav-link" href="{% url 'products:test' %}">
       <span data-feather="shopping-cart"></span>
       Products
    </a>
</li>

*** some code here

{% block test_html %}
{% endblock test_html %}

我有一个名为“products”的应用程序,在它的模板文件夹中,我有 test.html 文件。这里是它的内容;

{% extends 'products/base.html' %}
{% load static %}

{% block test_html %}
  <h1>test</h1>
  <h1>test</h1>
  <h1>test</h1>
{% endblock test_html %}

我的 products/base.html 文件;

{% extends 'dashboard.html' %}

我的 products/urls.py 文件;

app_name = 'products'
urlpatterns = [
    path('', views.IndexView.as_view(), name='base'),
    path('<int:pk>/', views.DetailView.as_view(), name='detail'),
    path('', TemplateView.as_view(template_name='products/test.html'), name='test'),
]

当我加载页面时,没有任何反应。这里也是截图链接;

http://i.prntscr.com/wtGNfcj4RZOClPndNfnX3w.png

我希望我的 test.html 文件中的 h1 标记位于屏幕截图上显示的空白区域。

PS:实际上我希望从我的 urls.py 中显示 IndexView,但出于测试目的,我创建了一个 test.html 来检查它是否适用于简单的 html。

感谢您的时间和回答。

编辑:如果我将 products/base.html 文件中的 {% extends 'dashboard.html' %} 更改为 {% extends 'base.html' %},该文件也在我的项目级模板目录中,然后是产品页面正在工作中。我不明白的是,两个不同的应用程序不能使用项目级模板目录中的同一个html 文件吗?有这样的规定吗?

【问题讨论】:

  • 你的 products/base.html 真的只包含一行吗?
  • 是的。实际上我有另一个名为“accounts”的应用程序,它的 base.html 也包含相同的代码行(只有 1 行),它的模板正在工作。我不明白为什么它不适用于“产品”应用。

标签: django django-templates django-views


【解决方案1】:

模板继承不是这样工作的。子模板只能填充在直接父级中定义的块;所以父母不能为空。您还需要在 products/base.html 中定义(空)test_html 块。

【讨论】:

  • 我在我的 products/base.html 文件中添加了{% block test_html %}{% endblock test_html %} extendstag 但仍然没有变化。
  • 你为什么这样做,而不是block test_html?
  • 我想我在这里执行这条规则:stackoverflow.com/questions/16899917/…。 @Daniel Roseman,您知道为什么它不起作用吗?
【解决方案2】:

事实证明,问题是由于 css 造成的。我的产品 html 被仪表板的容器覆盖。

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 2011-04-10
    • 2011-04-28
    • 2016-03-22
    • 1970-01-01
    • 2011-04-16
    • 2012-08-23
    • 2019-06-24
    相关资源
    最近更新 更多