Ich habe eine sehr einfache Vorlage (basic_template.html) und möchte diese mit Daten ausfüllen, die mit einer anderen Teilvorlage formatiert wurden. Die Datei basic_template.html enthält möglicherweise mehrere Elemente, die mit der Teilvorlage formatiert wurden.
Wie soll ich den Code in views.py strukturieren?
Der Grund, warum ich das mache, ist, dass das später mit Ajax gefüllt wird. Mache ich das richtig
html
django
django-templates
WindowsMaker
quelle
quelle
{% include "includes/subtemplate.html" with item=item %}
?item
bereits in der Untervorlage verfügbar. Wenn Sie den Kontext der Untervorlage sauber halten möchten, können Sie{% include "includes/subtemplate.html" with item=item only %}
nuritem
vom übergeordneten Element zur Untervorlage übergeben.Sie können dies mit einem Block tun . Blöcke sind ein Django-Vorlagen-Tag, das Abschnitte einer Vorlage überschreibt, die Sie erweitern. Ich habe unten ein Beispiel aufgenommen.
basic_template.html
<body> {% block 'body' %} {% endblock %} </body>
Vorlage, die Sie einschließen möchten: (dh example.html)
{% extends 'basic_template.html' %} {% block 'body' %} /* HTML goes here */ {% endblock %}
views.py :
return render_to_response(template='example.html', context, context_instance)
Dadurch wird basic_template.html geladen , aber alles, was
{% block 'body' %} {% endblock %}
in basic_template.html enthalten ist , wird durch alles ersetzt, was darin enthalten ist{% block 'body' %} {% endblock %}
.Weitere Informationen zu Blöcken und Vorlagenvererbung finden Sie in den Django-Dokumenten
quelle
{% include "main/includes/example.html" %}
Ansatz sieht einfacher aus (er bestätigt KISS ).Es gibt hauptsächlich 2 Möglichkeiten (2 einfache)
1:
In Basis-HTML setzen {% include "myapp / sub.html"%}
Und schreiben Sie einfach HTML-Code in Ihre sub.html-Datei
2:
https://docs.djangoproject.com/de/dev/ref/templates/language/#template-inheritance
quelle
Ich wollte nur Unterschiede in Bezug auf Erweiterung und Einbeziehung hinzufügen. Sowohl Vorlage als auch Include können Modelle verwenden, die in die aktuelle App eingefügt wurden. Die Vorlage ist für die globale Verwendung durch Ihre beliebige App vorgesehen. Include ist für die Verwendung in bestimmten Apps vorgesehen. Zum Beispiel: Sie möchten den Image Slider in Ihre Homepage und über die Seite einfügen, aber nirgendwo anders. Sie können die Slider-App zur Vereinfachung mit einem eigenen Modell erstellen, das Modell importieren und in diese Seiten aufnehmen. Wenn Sie für dieses Beispiel eine Vorlage verwendet haben, würden Sie zwei Vorlagen erstellen, eine mit Schieberegler und alle anderen Vorlagen.
quelle