2012-04-14 4 views

Antwort

1

Siehe Abschnitt Template Inheritance der Django-Vorlage.

Grundsätzlich Sie eine Vorlage erstellen, die die „Basis“ ist:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <link rel="stylesheet" href="style.css" /> 
    <title>{% block title %}My amazing site{% endblock %}</title> 
</head> 

<body> 
    <div id="sidebar"> 
     {% block sidebar %} 
     <ul> 
      <li><a href="/">Home</a></li> 
      <li><a href="/blog/">Blog</a></li> 
     </ul> 
     {% endblock %} 
    </div> 

    <div id="content"> 
     {% block content %}{% endblock %} 
    </div> 
</body> 
</html> 

und als (zum Beispiel) speichern „base.html“ in Ihrem Vorlagenverzeichnis, dann wird jede spezifische Seitenvorlage wie folgt aussieht:

{% extends "base.html" %} 

{% block title %}My amazing blog{% endblock %} 

{% block content %} 
{% for entry in blog_entries %} 
    <h2>{{ entry.title }}</h2> 
    <p>{{ entry.body }}</p> 
{% endfor %} 
{% endblock %} 
+0

Ist es sicher, meine Vorlagen aus dem Vorlagenordner der jeweiligen App zu übernehmen, vorausgesetzt, ich benutze den richtigen Loader? Oder ist es besser, nur absolute Pfade zu verwenden? – Addiction2Code

+0

@ Addiction2Code Ich bin mir nicht sicher, ob ich Ihre Frage verstehe. Sie können "base.html" wo immer Sie möchten einfügen, solange 'TEMPLATE_LOADERS' und' TEMPLATE_DIRS' in 'settings.py' Ihnen erlauben es zu finden, und dann sollten die spezifischen Seitenvorlagen in App-spezifischen Ordnern sein, wenn Sie mehrere haben Apps. – agf

+0

Schauen Sie sich auch {{block.super}} an, das ist wirklich nützlich, wenn Sie mit Template-Vererbung arbeiten;) – patrick

0

Lange Rede kurzer Sinn, sollten Sie eine Basisvorlage schreiben und diese Vorlage dann erweitern. Dies wird als Template-Vererbung bezeichnet und ist gut erklärt. here

+0

SO Antworten sollten nützlich sein, ohne einen Link zu klicken, wenn möglich, auch wenn Sie im Grunde nur aus dem Link wie ich zitieren hat getan. – agf

+0

Ich hatte einige Zweifel an der "Gültigkeit" meiner Antwort, aber dann dachte ich, es sei in Ordnung, da wir zur gleichen Zeit mit fast der gleichen Antwort antworteten; dann hast du es wahrscheinlich bearbeitet. Nächstes Mal werde ich einen Kommentar abgeben, wenn es nur für einen Link ist, danke für die Beratung. – luke14free

+0

Ja, ich posten oft "nur den Link" und fügen dann den Kontext in den nächsten paar Minuten hinzu. Auf diese Weise ist es weniger wahrscheinlich, dass fünf andere genau das Gleiche veröffentlichen, während ich versuche, die Details zu konkretisieren. – agf

Verwandte Themen