Как я могу использовать шаблоны блоков в django? - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь загрузить шаблон заголовка в свой индекс с помощью {% block%}, но не могу загрузить его

index. html

<body>

    <header>
        {% block header %}{% endblock %}
    </header>
<h1>Hello</h1>
</body>

header. html

{% extends "index.html" %}
{% block header %}
<div class="header">
    <a href="/category/"><i class="fas fa-archive"></i></a>
    <a href="../"><i class="fas fa-home"></i></a>
    <h1>hey</h1>
</div>
{% endblock %}

views.py

def index(request):
    categories = Category.objects.all()
    context = {'categories': categories}
    return render(request, 'category/index.html', context)

Приложение установлено в настройки.

Ответы [ 3 ]

0 голосов
/ 22 апреля 2020

Чтобы все работало так, как вы хотели, вам нужно сделать заголовок. html базовый шаблон, а затем расширить индекс. html из него. Это потому, что заголовок. html подставляется в {% block header%} только при отображении заголовка. html. Index. html не видит ни одной из этих замен при визуализации. Возможно, вы захотите сделать заголовок. html file файлом stati c и загрузить его таким образом. Как и в случае с css.

0 голосов
/ 22 апреля 2020

Лучше иметь макет, а затем поместить в него блок заголовка.

макет. html

...
<body>

    <header>
        {% block header %}{% endblock %}
    </header>
    <h1>Hello</h1>
    {% block content %}{% endblock %}
   <footer>
        {% block footer %}{% endblock %}
    </footer>


</body>
...

index. html

{% extends "layout.html" %}
{% block header %}
   the header
{% endblock %}
{% block content %}
   here the content
{% endblock %}
{% block footer %}
   here the footer
{% endblock %}

Теперь вы можете визуализировать индекс. html в вашем представлении

0 голосов
/ 22 апреля 2020

Чтобы добиться того, что вы хотите, вы должны сделать заголовок. html сейчас, отметьте django docs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...