Неудачное наследование шаблона в django templating

Я нахожусь в середине проекта. Проект использует базовый html во фронтенде. У меня проблемы с наследованием шаблонов. Вот основной код: -

    {% extends 'main.html' %}

{% block content %}
    <h2>Home</h4>
    <hr>
    {% if request.user.is_authenticated %}
        {% block home %}{% endblock home %}
    {% else %}

    {% for doc in doctor %}
        <div>
            <small>Doctors around</small>
            <br>
            <a href="{% url 'profile' doc.user.id %}"><li>{{doc.user.name}}</li></a>

            <br>
        </div>
    {% endfor %}

    {% endif %}

{% endblock content %}

Также код распространяется на другой шаблон. Дочерней страницей является :-

    {% extends 'rec/home.html' %}
{% block home %}
    <div>
        {% if request.user.usertype == 'p' %}
            <h1>Hi {{request.user.name}} </h1>
        {% else %}
            <h1>Hi {{request.user.name}} </h1>
        {% endif %}
    </div>

{% endblock home %}

Оба файла находятся в одном каталоге. Но я определил каталог шаблонов в файле настроек в другом каталоге.

Просто {% endblock %} вам не нужно указывать, какой блок вы закрываете / Я не уверен, что вы вообще можете

Это единственная проблема, которую я вижу в том, что предоставляется

Вместо того, чтобы определять шаблон для расширения в каждом шаблоне, попробуйте сделать что-то вроде этого:

Template.html

{% extends parent_template %}

Views.py

template = loader.get_template('app/page.html')
context = {}
context["parent_template"] = "app/parentPage.html"
return HttpResponse(template.render(context, request))

Таким образом, вы сможете назначить шаблон со стороны Django, и вам будет легче устранять неполадки

Вернуться на верх