2010-06-17 14 views
6

Uso le flatpage django per un sacco di contenuti sul nostro sito, mi piacerebbe estenderlo per accettare tag modello django anche nel contenuto.Estensione di Django Flatpages per accettare i tag modello

Ho trovato questo snippet ma dopo molte discussioni non riuscivo a farlo funzionare. Ho ragione nel ritenere che avresti bisogno anche di una "sottoclasse" dell'app django flatpages per farlo funzionare? È questo il modo migliore per farlo? Non sono abbastanza sicuro su come strutturarlo, in quanto non voglio modificare direttamente la distribuzione di django.

risposta

8

1. una semplice pagina di vista wich renderà tag modello caricando un modello per ogni pagina:

in url.py

url(r'^page/(?P<slug>.*)/$','my_app.views.page_detail', name='page_url'), 

in my_app/views.py

def page_detail (request, slug): 
    return render_to_response('page/' + slug + '.html', {}, 
           context_instance=RequestContext(request)) 

2. Un altro metodo con pagine semplici memorizzate nel database, è t o usa un "tag di valutazione del modello" nel tuo modello come this one.

modificare Devi solo modificare flatpages template in questo modo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
    "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html> 
<head> 
<title>{{ flatpage.title }}</title> 
</head> 
<body> 
{% load evaluate_tag %} 
{% evaluate flatpage.content %} 
</body> 
</html> 
+0

Hi Pierre, Il problema è che ho un sacco di contenuti nell'app flat pages, ma spesso voglio essere in grado di includere anche i tag Django e inserirli attraverso l'interfaccia di amministrazione delle pagine piatte, non voglio mantenere il contenuto separatamente nei modelli come penso che il tuo esempio mostri? Ho dato un'occhiata al tag di valutazione del modello che hai suggerito, ma ho difficoltà a capire come questo mi aiuterebbe a raggiungere l'obiettivo –

+1

Tristan, ho modificato la mia risposta e aggiunto un modello dettagliato. Spero che sia d'aiuto. –

+0

Ciao Pierre, con il tuo esempio ho capito meglio come funziona il tag evaluate e sembra che sia la soluzione per me, grazie per aver dedicato del tempo a spiegarti. A quanto ho capito, evalu_tag sta per leggere l'output della flatpage e elaborare i tag rilevanti in quel momento. Sembra perfetto ... –

0

Un approccio alternativo potrebbe essere quello di scrivere una semplice app basata sullo direct_to_template generic view.

+0

Hi Carles, Questo non mi avrebbe aiutato come ho un sacco di testo immesso e mantenuto attraverso l'interfaccia di amministrazione pagine piatte, il problema è che ho bisogno di essere in grado di inserire i tag modello django in là così come il testo semplice, e renderli renderli. –

Problemi correlati