Ich arbeite an einem Django-Projekt (mein erstes), und in einer meiner Ansichten habe ich ein ausgeklügeltes HTML-Snippet mit JS darin gewebt. Ich möchte diese "Komponente" woanders in derselben Ansicht wiederverwenden. Gibt es eine Möglichkeit, dies zu erreichen? Bitte lassen Sie mich wissen, wenn dieses Design zu Beginn fehlerhaft ist?Wie kann ich HTML-Snippets in einer Django-Ansicht erneut verwenden?
Antwort
Verwenden Sie den Vorlagentag {% include '/my/common/template.html' %}.
Lädt eine Vorlage und rendert sie mit den aktuellen Kontext. Dies ist ein Weg von "einschließlich" andere Vorlagen innerhalb einer Vorlage.
Der Vorlagenname kann entweder ein Variable oder eine hartcodierte (zitiert) Zeichenfolge, entweder in Einzel- oder Doppel Anführungszeichen.
genau das, was ich suche .. danke! – daniyalzade
Nicht sicher, wenn Sie Ihren HTML-Code in verschiedenen Vorlagen (von verschiedenen Ansichten gerendert) wiederverwenden möchten. Wenn ja, schauen Sie in Django's template inheritance Mechanismus:
Die stärkste - und damit auch die komplexeste - Teil Djangos Template-Engine ist Vorlage Vererbung. Mit der Vorlagenvererbung können Sie eine Basis- "Skelett" -Schablone erstellen, die alle allgemeinen Elemente Ihrer Site enthält, und Blöcke definieren, die von untergeordneten Vorlagen überschrieben werden können.
Sie sollten Django benutzerdefinierte Vorlage Tags versuchen. Auf diese Weise behalten Sie Ihre Snippets in einer externen Datei und rufen sie dann einfach durch etwas wie {{ your_custom_tag }}
. Es ist eine sehr bequeme Methode, um mit wiederverwendbaren Brocken von xhtml-Markup zu arbeiten. Sie können sogar Argumente mit diesen benutzerdefinierten Tags verwenden, etwa {{ your_custom_tag|image:"logo.png" }}
. Sie können mehr über benutzerdefinierte Tags here lernen.
Ich weiß, es ist ein alter, aber vielleicht jemand wird diese Antwort verwenden.
Es gibt auch die inclusion tag. Es ist wie das include-Tag, nur Sie können Argumente übergeben und als separate Vorlage verarbeiten.
Diese in my_app/templatetags/my_templatetags.py
:
@register.inclusion_tag('my_snippet.html')
def my_snippet(url, title):
return {'url': url, 'title': title}
und dann kann my_snippet.html sein:
<a href="{{ url }}">{{ title }}</a>
dann, diese Schnipsel in Ihren Templates zu verwenden:
{% load my_templatetags %}
{% my_snippet "/homepage/" "Homepage" %}
Mehr Infos : https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#howto-custom-template-tags-inclusion-tags
- 1. Wie kann ich Capybara-Sitzungen zwischen den Tests erneut verwenden?
- 2. Kann ich PreparedStatement erneut verwenden, wenn eine vorübergehende Ausnahme auftritt?
- 3. Laravel - Kann ich die Validator-Instanz im Controller erneut verwenden?
- 4. Kann ich einen Ausdruck in einer MySQL-Abfrage als Variable für ein anderes Feld erneut verwenden?
- 5. Wie kann OSGi (Config Admin) persistieren/Ihre Konfiguration erneut verwenden?
- 6. Wie würde ich benutzerdefinierte Ansichten in einer Bildlaufansicht erneut laden?
- 7. Wie kann ich den Fotozugriff in iOS5 erneut anfordern?
- 8. Kann ich $ rootScope in einer Fabrik verwenden?
- 9. Wie kann ich eigeneProps erhalten, indem ich Redux erneut auswähle?
- 10. Wie kann ich% in einer "in" -Anweisung verwenden SQL
- 11. Wie kann ich die Daten in einer WatchKit-Tabellenansicht erneut laden?
- 12. Wie kann ich dynamische ASP.NET-Benutzersteuerelemente erneut instanziieren, ohne eine Datenbank zu verwenden?
- 13. Kann ich .xcarchive auf Xcode erneut öffnen?
- 14. Wie kann ich qualifizierte importierte Module erneut exportieren?
- 15. Wie binde ich meine Validierungsereignisse nach einer Ajax-Formularaktualisierung erneut?
- 16. Kann ich eine Spool-Datei erneut drucken?
- 17. Wie kann ich dasselbe Objekt in einer externen Klasse verwenden?
- 18. Wie kann ich SQL-Parameter in einer CONTAINS-Klausel verwenden?
- 19. Wie kann ich Inline-Variablen in einer .bat-Datei verwenden?
- 20. Wie kann ich Cumsum innerhalb einer Gruppe in Pandas verwenden?
- 21. Wie kann ich Linq in einer T4-Vorlage verwenden?
- 22. Wie kann ich Platzhalter in einer switch-Anweisung verwenden?
- 23. Wie kann ich Sonderzeichen in einer XSL-Transformation verwenden?
- 24. Wie kann ich Parameter in einer Datei messages.properties verwenden?
- 25. Wie kann ich java.lang.instrument in einer Eclipse RCP-Anwendung verwenden?
- 26. Wie kann ich WifiManager in einer Nicht-Aktivitätsklasse verwenden?
- 27. Wie kann ich Anführungszeichen innerhalb einer Eingabezeichenfolge in VBA verwenden?
- 28. Wie kann ich eine Sitzung in einer ASP-Klassendatei verwenden?
- 29. Wie kann ich Min in einer case-Anweisung verwenden
- 30. Wie kann ich die NVL-Funktion in einer Ergebnistabelle verwenden?
Von "view" denken Sie Vorlage? – dekomote
Können Sie einen Code bereitstellen? –