Заголовок не виден на странице django
Я пытаюсь отобразить страницу с заголовком, но заголовок не отображается. содержимое categories.html отображается отлично. Я добавил блок заголовка на страницу index.html. Что я делаю не так?
index.html
{% load static %}
<link rel="icon" href="{% static 'stocks/logo.png' %}">
<html>
<body>
<div>
{% block header %}
{% endblock %}
</div>
{% block stocks_page %}
{% endblock %}
</div>
</body>
</html>
header.html
{% extends "stocks/index.html" %}
{% block header %}
<h1>Header content goes here</h1>
{% endblock %}
categories.html
{% extends "stocks/index.html" %}
{% load static %}
{% block stocks_page %}
<link rel="stylesheet" type="text/css" href="{% static 'stocks/style.css' %}">
{% if categories %}
<h2>Product categories</h2>
<table>
<tr>
<th>Name</th>
<th>Count</th>
</tr>
{% for each in categories %}
<tr>
<td>{{ each.name }}</td>
<td>{{ each.count }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
<form action="/stocks/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
{% endblock %}
views.py
def product_categories(request):
----------------------
< code >
----------------------
return render(request, 'stocks/categories.html')
Если вы хотите использовать заголовок, вам нужно написать код внутри блочных кавычек. Например, в вашем файле categories.html
,
{% extends "stocks/index.html" %}
{% load static %}
{% block header %} <---- You would need to use block every time you render
<h1>Header content goes here</h1>
{% endblock %}
{% block stocks_page %}
<---- stock_page_content ---->
{% endblock %}
Чтобы упростить ситуацию, если вы хотите включить заголовок в каждую страницу, которая расширяется от index.html
, используйте следующее.
В вашем index.html
файле:
{% load static %}
<link rel="icon" href="{% static 'stocks/logo.png' %}">
<html>
<body>
<div>
{% include 'header.html' %} <--- include replaces the file in render
</div>
{% block stocks_page %}
{% endblock %}
</div>
</body>
</html>
Дополнительная информация: https://docs.djangoproject.com/en/4.0/ref/templates/builtins/#include
{% include 'header.html' %}
попробуйте это в вашем index.html
это может решить вашу проблему