2010-06-17 4 views
6

Ich benutze django flatpages für viele Inhalte auf unserer Seite, ich möchte es erweitern, um Django Template Tags auch im Inhalt zu akzeptieren.Erweiterung von Django Flatpages um Template-Tags zu akzeptieren

Ich fand diese snippet aber nach viel Lerking über ich konnte es nicht zur Arbeit bekommen. Habe ich richtig angenommen, dass Sie die Django-Flatpages-App zu "Unterklasse" machen müssten, um das zu erreichen? Ist das der beste Weg, es zu tun? Ich bin mir nicht ganz sicher, wie ich es strukturieren soll, da ich die Django-Distribution nicht wirklich modifizieren möchte.

Antwort

8

1. Eine einfache Seitenansicht Wich wird für jede Seite durch das Laden einer Vorlage Template-Tags machen:

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. Eine andere Methode mit flachen Seiten in der Datenbank gespeichert ist t o Verwenden Sie ein "Template-Evaluierungs-Tag" in Ihrer Vorlage wie this one.

bearbeiten Sie müssen nur flatpages template wie folgt ändern:

<!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

Hallo Pierre, Das Problem ist, ich habe eine Menge Inhalte in der Flat-Seiten-App, aber ich möchte oft in der Lage sein, Django Tags auch und geben Sie sie über die flache Seiten Admin-Schnittstelle, möchte ich nicht behalte den Inhalt separat in Vorlagen, wie ich denke, dein Beispiel zeigt? Ich habe einen Blick auf die Vorlage Auswertung Tag, die Sie vorgeschlagen, aber ich habe Probleme zu verstehen, wie das würde mir helfen, mich zu erreichen –

+1

Tristan, habe ich meine Antwort bearbeitet und eine detaillierte Vorlage hinzugefügt. Ich hoffe es hilft. –

+0

Hallo Pierre, mit deinem Beispiel verstehe ich besser, wie das Evaluierungs-Tag funktioniert, und das sieht nach seiner Lösung für mich aus, danke, dass du dir die Zeit genommen hast, es zu erklären. Wie ich es verstehe, wird der evaluate_tag nur die Ausgabe der Flatpage durchlesen und die relevanten Tags zu diesem Zeitpunkt verarbeiten. Sieht perfekt aus ... –

0

Ein alternativer Ansatz könnte sein, eine einfache App basierend auf der direct_to_template generic view zu schreiben.

+0

Hallo Carles, Das würde mir nicht helfen, da ich viel Text eingegeben und gepflegt durch die flache Seiten Admin-Interface haben, Das Problem ist, dass ich in der Lage sein muss, dort django Vorlagen-Tags sowie den Klartext einzugeben und sie rendern zu lassen. –

Verwandte Themen