2017-11-15 4 views
0

Ich verwende django_tables2, um einige Tabellen zu erstellen. Meine App heißt "Director" und ich habe eine Basisvorlage und dann eine untergeordnete Vorlage, die von ihr erbt. Der Code funktioniert größtenteils wie erwartet - die Kindvorlage erbt korrekt die Divss und die Sachen vom Elternteil und das Styling ist richtig, aber dann gibt das Kind die gleiche Tabelle ein zweites Mal aus, diesmal ohne das Styling vom Elternteil. Ich kann nicht für mein Leben herausfinden, warum die zweite Tabelle generiert wird.Warum rendert django_tables2 die gleiche Tabelle zweimal?

Hier ist die Basisvorlage.

#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 %} 

Und hier ist das Kind.

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

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

    {% endblock %} 

enter image description here

bearbeiten

Wenn ich die {% render_table Tabelle%} Zeile aus kommentieren, dann bekomme ich 0 Tabellen, nicht 2.

Antwort

0

es gelöst. Die Lösung bestand darin, das css/bootstrap-Zeug in weitere Blöcke aufzuteilen.

die Muttervorlage:

{% 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 %} 

und das Kind:

{% 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 %} 

Dies gibt das erwartete Ergebnis. enter image description here

Verwandte Themen