django multiple template inheritance - ist das der richtige stil?

Yo

Also habe ich eine base.html:

<html>
    <body>
        <div id="header"> ... </div>
        {% block main %}{% endblock %}
        <div id="footer"> ... </div>
    </body>
</html>

und ich habe auch eine Seite, die die Beiträge des Benutzers zeigt:

{% extends base.html %|
{% block main%}
    <h1>welcome to yours posts hangout!</h1>

      ... snazzy code here that shows all the posts ...

{% endblock%}

Jetzt ist das Problem, vielleicht habe ich eine andere Seite wie diese:

{% extends base.html %|
{% block main%}
    <h1>look at all posts by all users!</h1>

      ... snazzy code here that shows all the posts by all the users ...

{% endblock%}

weil wir alle zu mensa gehören, können wir sehen, dass der schicke Code, den ich habe, wiederholt wird - zweimal (zum tautologischen Spaß!)

Ich möchte diesen Code nicht wiederholen - ich meine, wenn es ein großer Ärger wird, würde ich es gerne tun, aber ansonsten möchte ich die eine Seite, auf der der pfiffige Code definiert ist, und dann die kleinen Änderungen darüber streichen und ( möglicherweise) darunter in.

Mein Verständnis von Vorlagen ist jedoch wackelig. Ich denke, dies ist der richtige Weg, gibt es einen besseren / standardisierten Weg?

snazzy.html:

{% extends base.html %|
  {% block aboveSnazzy%}
  {% endblock %}

      ... snazzy code here that shows all the posts by all the users ...

  {% block belowSnazzy%}
  {% endblock %}
{% endblock%}

und dann kann ich für jedes der verschiedenen Stücke haben:

usersArea.html:

{% extends snazzy.html %|
  {% block aboveSnazzy%}
      <h1>welcome to yours posts hangout!</h1>
  {% endblock %}


  {% block belowSnazzy%}
      <h1>i didn't think this far ahead in the example</h1>
  {% endblock %}
{% endblock%}

etc etc auch für die anderen stücke!

ok, also weiß ich, dass ich nur einen Parameter mit einem anderen Header oder was haben Sie einschicken kann - lassen Sie uns so tun, als ob das obengenannte schräge Zeug, ich weiß nicht, eine andere Vorlage zeigt, die ich möchte oder etwas nicht-triviales tut. Ist das, was ich oben beschrieben habe, der "Weg", es zu tun?

Prost!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage