Почему django_tables2 отображает одну и ту же таблицу дважды?

Я использую django_tables2 для создания некоторых таблиц. Мое приложение называется "директор", и у меня есть базовый шаблон, а затем дочерний шаблон, который наследуется от него. Код в основном работает как положено - дочерний шаблон правильно наследует divss и вещи от родителя, и стилизация правильна, но затем дочерний шаблон также выводит ту же таблицу во второй раз, на этот раз без стилизации от родителя. Я не могу понять на всю жизнь, почему создается вторая таблица.

Вот базовый шаблон.

#director_table.html
{% block content %}
<div class="container">
  <div class="row">
    <div class="col-lg-12 mb-4 mt-4">
        <div class="card h-100">
            <div class="card-header">List</div>
            <div class="card-body">
            <h4 class="card-title"></h4>
            <h6 class="card-subtitle"></h6>

                {% block table_stuff %}

                {% endblock %}
            </div>
        </div>
    </div>
 </div>
</div>
{% endblock %}

А вот и ребенок.

{% extends 'director/director_table.html' %}
    {% load render_table from django_tables2 %}
    {% block content %} 
    {{ block.super }}

        {% block table_stuff %}
            {% render_table table %}
        {% endblock %}

    {% endblock %}

редактировать

Если я закомментирую строку {% render_table table %}, то получу 0 таблиц, а не 2.

1 ответ

Решил это. Решением было разделить материал css/bootstrap на следующие блоки.

родительский шаблон:

{% block content %}
    {% block top %}
<div class="container">
    <div class="row">
        <div class="col-lg-12 mb-4 mt-4">
            <div class="card h-100">
                <div class="card-header">List</div>
                <div class="card-body">
                <h4 class="card-title"></h4>
                <h6 class="card-subtitle"></h6>
    {% endblock %}
                    {% block table_stuff %}

                    {% endblock %}
    {% block bottom %}
                </div>
            </div>
        </div>
    </div>
</div>
    {% endblock %}
{% endblock %}

и ребенок:

{% extends 'director/director_table.html' %}
{% load render_table from django_tables2 %}
{% block content %}
    {% block top %}
    {{ block.super }}
    {% endblock %}
    {% block table_stuff %}
        {% render_table table %}
    {% endblock %}
    {% block bottom %}
    {{block.super}}
    {% endblock %}
{% endblock %}

Это дает ожидаемый результат.

Другие вопросы по тегам