2015-11-17 16 views
6

Ich verwende django flatpage s, und ich frage mich, ob es eine präzise Möglichkeit zum Laden einer bestimmten Flatpage innerhalb einer Vorlage gibt. Die Dokumente zeigen die folgenden Muster:Verwenden einer bestimmten Flatpage in einer Vorlage

{% load flatpages %} 

{% get_flatpages '/about/' as about_pages %} 
{% get_flatpages about_prefix as about_pages %} 
{% get_flatpages '/about/' for someuser as about_pages %} 

Ich möchte nur eine bestimmte Seite in einer Vorlage laden, es im Wesentlichen wie eine Include-Anweisung (zB {% include 'homepage.html' %})

Der Ansatz, den ich verwende, ist dies:

{% get_flatpages '/flat-homepage/' as flatpages %} 
{{ flatpages.first.content|safe }} 

Das funktioniert gut, aber ich dachte, es könnte eine etwas bessere Art und Weise, dies zu tun. Ich markiere den Inhalt als safe, wie ich möchte HTML-Stile angewendet werden (wieder, nicht sicher, ob es eine bessere Möglichkeit, dies zu tun)

+0

Möchten Sie auf diesen Inhalt außerhalb der gewünschten Flatpage zugreifen? – GwynBleidD

Antwort

2

Standardmäßig gibt es 2 Lösungen dafür.

Zuerst registrieren Sie Ihr Flat in Urls wie folgt:

from django.contrib.flatpages import views 

urlpatterns = [ 
    url(r'^about-us/$', views.flatpage, {'url': '/about-us/'}, name='about'), 
] 

Auf diese Weise, können Sie es {% url %}-Tag zugreifen können, wie normale Ansicht.

Zweite Art und Weise, wenn Sie genaue URL dieser Seite kennen, können Sie es zugreifen URL:

{% url 'django.contrib.flatpages.views.flatpage' url='url_to_flatpage_here' %} 

Es gibt keine andere Art und Weise ist, weil alle Flatpages von URL identifiziert werden.

+0

Ich versuchte es mit dem URL-Namen und es funktionierte: {% url 'über'%} – Lara