dziedziczenie wielu szablonów django - czy jest to odpowiedni styl?

Siema

więc mam bazę.html:

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

a także mam stronę, która pokazuje posty użytkownika:

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

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

{% endblock%}

teraz problem polega na tym, że może mam inną stronę taką jak ta:

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

ponieważ wszyscy należymy do mensy, widzimy, że kod snazzy, który mam, jest powtarzany - dwa razy (dla zabawy tautologicznej!)

Nie chcę powtarzać tego kodu - to znaczy, jeśli będzie to poważny problem, będę, ale poza tym chciałbym mieć jedną stronę, na której zdefiniowano kod snazzy, a następnie zrzucić małe zmiany powyżej i ( ewentualnie) poniżej.

moje rozumienie szablonów jest niepewne - myślę, że jest to sposób na zrobienie tego, czy istnieje lepszy / standaryzowany sposób?

snazzy.html:

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

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

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

a potem dla każdego z różnych kawałków mogę mieć:

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 dla innych kawałków też!

ok, więc wiem, że mogę po prostu wysłać parametr z innym nagłówkiem lub tym, co masz - udawajmy, że powyższe rzeczySnazzy pokazują, nie wiem, inny szablon, który chciałbym zrobić lub zrobić coś nietrywialnego. Czy to, co wyszczególniłem powyżej „sposób”, aby to zrobić?

Twoje zdrowie!

questionAnswers(1)

yourAnswerToTheQuestion