Ich würde gerne wissen wie man in Django ohne zusätzlichen Javascript-Code dynamisch Inhalte nachladen und verschachteln kann. Ich weiß vorher aber nicht wie viele Template-Elemente das sind, dynamisch eben.
Ein Minimalbeispiel:
Ich habe eine base.html mit einem Plus-Button. Jedes mal, wenn ich den Plus Button klicke soll ein Template-Element in die base.html nachgeladen werden. Jedes Template Element selbst hat wiederum einen Button um innerhalb seines eigenen Templates-Codes weitere dynamische Inhalte hinzuzulagen.
Wie stellt man das an? Ich habe ein Block-Nesting versucht, was aber nicht funktioniert, weil offenbar nach dem Rendern im Quelltext kein leerer Block vorhanden ist, der erneut ersetzt werden könnte. Ich bin nicht so gut in Javascript, aber ich glaube das Äquivalent hier wäre einfach ein Template mit einem leeren <div>-Tag einzufügen in welches jedes mal wenn ein Element nachgeladen wurde auch ein neuer leerer <div>-Tag für weiteren Content zur Verfügung stehen würde. Aber das muß doch Django auch irgendwie von Haus aus können oder?
<base.html>
Code: Alles auswählen
<html>
...
<!-- navbar -->
{% include "base/base_navbar.html" %}
<!-- basecontent -->
{% block basecontent %}
{% include "base/base_content_start.html" %}
{% endblock %}
<!-- footer -->
{% include "base/base_footer.html" %}
...
</html>
Code: Alles auswählen
{% extends base.html %}
{% block basecontent%}
Plus-Button (Level 0)
<!-- Block der beim 1. Klick dazugeladen wurde -->
{% block dynamic_content_level_0%}
Content der durch Click auf Plus-Button dazugeladen wurde
{% endblock %}
<!-- Block der beim 2. Klick dazugeladen wurde -->
{% block dynamic_content_level_0%}
Content der durch Click auf Plus-Button dazugeladen wurde
{% endblock %}
...
<!-- Block der beim n. Klick dazugeladen wurde -->
{% block dynamic_content_level_0%}
Content der durch Click auf Plus-Button dazugeladen wurde
{% endblock %}
{% endblock %}
Code: Alles auswählen
{% extends content_level_0.html %}
{% block dynamic_content_level_0%}
Plus-Button (Level 1)
<!-- Block der beim 1. Klick dazugeladen wurde -->
{% block dynamic_content_level_1%}
Content der durch Click auf Plus-Button dazugeladen wurde
{% endblock %}
...
<!-- Block der beim n. Klick dazugeladen wurde -->
{% block dynamic_content_level_1%}
Content der durch Click auf Plus-Button dazugeladen wurde
{% endblock %}
{% endblock %}