7 Stimmen

Wie benutzt man django-sitetree?

Ich versuche zu verwenden django-sitetree aber ich verstehe nicht, wie man Schritt 3 ausführt, der lautet:

"Gehen Sie zur Django-Admin-Seite und fügen Sie einige Bäume und Baumelemente hinzu."

Wie erstelle ich einen Sitetree in der Administrationsoberfläche? Ich glaube, der erste Schritt besteht darin, einen Alias für den "Site Tree" zu wählen, den Sie hinzufügen möchten.

Der nächste Schritt ist das Hinzufügen von "Site Tree Item". Auf dieser Seite müssen Sie Elternteil, Titel und URL auswählen. In Anbetracht meiner App ist dynamisch mit url Struktur wie diese localhost:8000/categoryname/entryname Wie wähle ich Urls aus?

Übrigens versuche ich, Breadcrumbs in meine Vorlagen einzufügen.

19voto

idle sign Punkte 1134

So erstellen Sie einen Baum:

  1. Wechseln Sie zum Verwaltungsbereich der Website;

  2. Klicken Sie auf +Hinzufügen neben 'Site Trees';

  3. Geben Sie einen Alias für Ihren Standortbaum ein, z. B. 'maintree'.
    Sie werden Ihren Baum mit diesem Alias in Template-Tags ansprechen;

  4. Drücken Sie auf 'Site Tree Item hinzufügen';

  5. Erstellen Sie den ersten Artikel:

    Elternteil: Da es sich um einen Root-Artikel handelt, der kein Elternteil hat.
    Titel: Lassen Sie es 'Meine Seite' sein.
    URL: Diese URL ist statisch, also setzen Sie hier '/' ein.

  6. Erstellen Sie ein zweites Element (dieses würde "Kategoriename" aus Ihrem "Kategoriename/Eintragsname" übernehmen):

    Elternteil: Wählen Sie den Punkt "Meine Website" aus Schritt 5.
    Titel: Setzen Sie hier 'Kategorie #{{ category.id }}' ein.
    URL: Benannte URL 'category-detailed category.name' setzen.
    In 'Zusätzliche Einstellungen': Haken setzen bei ' URL als Muster ' ankreuzen.

  7. Erstellen Sie ein drittes Element (das den "Eintragsnamen" aus Ihrem "Kategorienamen/Eintragsnamen" behandeln würde):

    Elternteil: Wählen Sie das Element "Kategorie #{{ category.id }}" aus Schritt 6.
    Titel: Setzen Sie hier 'Eintrag #{{ entry.id }}' ein.
    URL: Benannte URL 'Eintrag-detaillierte-Kategorie.Name-Eintrag.Name' setzen.
    In 'Zusätzliche Einstellungen': Haken setzen bei ' URL als Muster ' ankreuzen.

  8. Fügen Sie '{% load sitetree %}' in Ihre Vorlage ein, um Zugriff auf Sitetree-Tags zu haben.

  9. Fügen Sie '{% sitetree_menu from "maintree" %}' in Ihr Template ein, um das Menü darzustellen.

  10. Fügen Sie '{% sitetree_breadcrumbs from "maintree" %}' in Ihre Vorlage ein, um Breadcrumbs darzustellen.


Die Schritte 6 und 7 bedürfen einiger Klarstellungen:

  • In Titeln verwenden wir Django-Template-Variablen, die genau wie in Ihren Templates aufgelöst werden.

    Z.B.: Sie haben Ihre Ansicht für 'Kategoriename' (nennen wir sie 'detailed_category') so gestaltet, dass das Kategorieobjekt in die Vorlage als 'category'-Variable übergeben. Angenommen, das Kategorieobjekt hat die Eigenschaft "id". In Ihrer Vorlage verwenden Sie '{{ category.id }}', um die id wiederzugeben. Und wir machen genau dasselbe für das Element im Site-Baum in Schritt 6.

  • In URLs verwenden wir die benannten URL-Muster von Django ( Dokumentation ). Das ist fast identisch mit der Verwendung von Django ' url Tag in Vorlagen.

    Ihre URL-Konfiguration für die Schritte 6 und 7 sollte Folgendes enthalten:

    url(r'^(?P<Kategoriename> \S +)/(?P<Eintrag_Name> \S +)/$', 'detailed_entry', name=' Eintrag detailliert '),
    url(r'^(?P<Kategoriename> \S +)/$', 'detailed_category', name=' kategorie-detailliert '),

    Indem wir also in Schritt 7 "entry-detailed category.name entry.name" in das URL-Feld eingeben, weisen wir sitetree an, dieses sitetree-Element mit der URL "entry-detailed" zu verknüpfen und ihm die Parameter category_name und entry_name zu übergeben.

Ich hoffe, dass diese Beschreibung die Dokumentationslücke schließen sollte %)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X