Я также проверил похожие вопросы здесь, но моя проблема не входит в их число. На самом деле я получаю не конкретную ошибку, а буквально что-нибудь.
У меня есть основной шаблон под названием 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 %}
Мой файл продукты / base.html;
{% extends 'dashboard.html' %}
Мой файл продукты / 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
Я ожидаю тегов h1 из моего файла test.html в этой пустой области, показанной на снимке экрана.
PS: На самом деле я ожидаю показать IndexView из моего urls.py, но для целей тестирования я создал test.html, чтобы проверить, работает ли он с простым html.
Спасибо за время и ответы.
Обновлено: Если я изменю {% extends 'dashboard.html' %} на {% extends 'base.html' %} в файле продукты / base.html, который также находится в каталоге шаблонов уровня моего проекта, то страница продуктов будет работать. Я не понимаю, что могут два разных приложения не использовать один и тот же файл html, который находится в каталоге шаблонов уровня проекта? Есть ли такое правило?
Да. На самом деле у меня есть другое приложение под названием «accounts», и его base.html также содержит ту же строку кода (только 1 строку), и его шаблон работает. Я не понимаю, почему это не работает для приложения "продукты".





Наследование шаблонов так не работает. Дочерний шаблон может заполнять только те блоки, которые определены в непосредственном родительском шаблоне; поэтому родительский элемент не может быть пустым. Вам также необходимо определить (пустой) блок test_html в файле products / base.html.
Я добавил {% block test_html %}{% endblock test_html %} в свой файл products / base.html после extendstag, но изменений по-прежнему нет.
Почему вы сделали это вместо block test_html?
Думаю, я реализую это правило здесь: stackoverflow.com/questions/16899917/…. Ты хоть представляешь, почему это не работает, @Daniel Roseman?
Оказывается, проблема возникает из-за файла css. HTML-код моего продукта был перезаписан контейнером панели инструментов.
Действительно ли ваш файл products / base.html содержит одну строку?