2011-01-22 10 views
7

Sto cercando di utilizzare django-sitetree, ma non capisco come fare il passaggio 3 che è:Come usare django-sitetree?

"Go to Django Admin sito e aggiungere alcuni alberi e gli elementi albero."

Come creare un sitel nel pannello di amministrazione? Credo che il primo passo sia scegliere un alias per la "struttura del sito" che stai per aggiungere.

Il passaggio successivo consiste nell'aggiungere "voce dell'albero del sito". In questa pagina devi scegliere genitore, titolo, url. Considerando che la mia app è dinamica con una struttura url come questa localhost:8000/categoryname/entryname come faccio a scegliere gli URL?

A proposito, sto cercando di aggiungere breadcrumb nei miei modelli.

risposta

18

Per creare un albero:

  1. pannello Goto sito di somministrazione;
  2. Fare clic su + Aggiungi vicino a "Alberi sito";
  3. Inserisci alias per il tuo sitetree, ad es. 'Maintree'.
    Si indirizzerà il proprio albero con questo alias nei tag del modello;
  4. Premere "Aggiungi elemento struttura sito";
  5. Creare prima voce:

    Parent

    : Come è elemento principale che avrebbe nessun genitore.
    Titolo: Lascia che sia "Il mio sito".
    URL: Questo URL è statico, quindi inserire qui '/'.

  6. Creare seconda voce (che si sarebbe occupato 'categoryname' dal 'categoryname/entryname'):

    principale: Scegliere la voce 'Il mio sito' dal punto 5.
    Titolo: Metti qui 'Categoria # {{category.id}}'.
    URL: Inserire l'URL con nome 'category-detail category.name'.
    In "Impostazioni aggiuntive": selezionare l'opzione "URL come Modello".

  7. Crea terza voce (che si sarebbe occupato 'entryname' dal 'categoryname/entryname'):

    Parent: Scegliere 'Categoria # {{}} category.id' voce dal passaggio 6.
    Titolo: Inserire qui "Voce # {{entry.id}}".
    URL: Inserire l'URL denominato 'entry-detail category.name entry.name'.
    In "Impostazioni aggiuntive": selezionare l'opzione "URL come Modello".

  8. Inserisci '{% load sitetree%} nel tuo modello per accedere ai tag sitetree.
  9. Inserisci '{% sitetree_menu da "maintree"%} "nel modello per il menu di rendering.
  10. Inserisci '{% sitetree_breadcrumbs da "maintree"%}' nel modello per il rendering dei breadcrumb.

punti 6 e 7 hanno bisogno di alcuni chiarimenti:

  • Nei titoli usiamo variabili di modello Django, che sarebbero risolti proprio come fanno nei vostri modelli.

    Es .: Hai fatto la tua vista per 'NomeCategoria' (chiamiamola 'detailed_category') per passare categoria oggetto in modello come variabile 'categoria'. Supponiamo che l'oggetto categoria abbia la proprietà 'id'. Nel tuo template usi '{{category.id}}' per renderizzare id. E facciamo appena lo stesso per oggetto albero sito in fase 6.

  • In URL usiamo modelli URL nome di Django (documentation). Questo è quasi identico all'utilizzo del tag Django "url" nei modelli. Configurazione

    gli URL per i passaggi 6, 7 dovuto includere:

    url (r '^ (P <category_name> \ S +)/(P <nome_voce> \ S +)/$?', 'detailed_entry', name = 'entry-dettagliata '),
    url (r'^(? P <category_name> \ S +)/$', 'detailed_category', name = 'categoria-dettagliata'),

    Quindi, inserendo "entry-detail category.name entry.name" nel passaggio 7 nel campo URL, comunichiamo sitetree per associare quell'elemento sitelit con l'URL denominato "entry-detailed", passando ad esso category_name e entry_name parameters.

Spero che questa descrizione dovrebbe colmare il vuoto di documentazione%)

+0

Woah! Non mi aspettavo questa risposta globale. Molte grazie. – Sushi

+0

@Sushi Prego. –

+0

@idlesign Nell'esempio, sono 'entry_name' in URLconf e' entry.name' nel campo URL relativo? In tal caso, come viene stabilita questa relazione? Non vedo come siano collegati i due. – Romildo