2015-11-17 16 views
6

Sto utilizzando django flatpage s e mi chiedo se esiste un modo conciso per caricare una pagina flat specifica all'interno di un modello. La documentazione mostrano i seguenti modelli:Utilizzo di una pagina flat specifica in un modello

{% load flatpages %} 

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

voglio solo caricare una pagina specifica in un modello, in sostanza, usandolo come un'istruzione include (per esempio {% include 'homepage.html' %})

L'approccio che sto usando è questo:

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

Questo funziona bene, ma ho pensato che potrebbe esserci un modo leggermente più ordinato per farlo. Sto marcando il contenuto come safe perché voglio applicare gli stili html (di nuovo, non sono sicuro se c'è un modo migliore per farlo)

+0

Stai provando ad accedere a quel contenuto al di fuori della pagina desiderata? – GwynBleidD

risposta

2

Per impostazione predefinita, ci sono 2 soluzioni per questo.

In primo luogo, registrare il flatpage negli URL, come di seguito:

from django.contrib.flatpages import views 

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

In questo modo, è possibile accedere utilizzando {% url %} tag, come la vista normale.

Secondo modo, se si conosce l'URL esatto di quella pagina, è possibile accedervi utilizzando URL:

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

Non c'è altro modo, perché tutti flatpages sono identificati da URL.

+0

Ho provato con il nome dell'URL e ha funzionato: {% url 'su'%} – Lara