我也在这里检查了类似的问题,但我的问题不是其中之一。其实我没有得到一个具体的错误,但是从字面上得到了任何东西。
我有一个名为 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 %}
我有一个名为“产品”的应用程序,在其模板文件夹中,有 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
文件吗?有这样的规则吗?
答案 0 :(得分:0)
模板继承不能那样工作。子模板只能填充直接父模板中定义的块。因此父级不能为空。您还需要在products / base.html中定义(空)test_html
块。
答案 1 :(得分:0)
原来,该问题是由于CSS引起的。我的产品html被仪表板的容器覆盖。