2015-11-17 3 views
6

Я использую django flatpage с, и мне интересно, существует ли сжатый способ загрузки одной конкретной страницы в шаблон. Документы показывают следующие закономерности:Использование конкретной страницы в шаблоне

{% load flatpages %} 

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

Я просто хочу, чтобы загрузить одну конкретной страницу в шаблоне, по сути, используя его как включать заявление (например, {% include 'homepage.html' %})

подхода я использую это:

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

Это прекрасно работает, но я думал, что это может быть немного более аккуратный способ сделать это. Я отмечаю содержимое как safe, так как я хочу использовать стили html (опять же, не уверен, есть ли лучший способ сделать это)

+0

Вы пытаетесь получить доступ к этому контенту за пределами желаемой плоской страницы? – GwynBleidD

ответ

2

По умолчанию для этого есть 2 решения.

Во-первых, зарегистрировать flatpage в адресах, как показано ниже:

from django.contrib.flatpages import views 

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

Таким образом, вы можете получить доступ к нему с помощью {% url %} тег, как обычный вид.

Второй путь, если вы знаете точный адрес этой страницы, вы можете получить доступ это URL с помощью:

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

Там нет другого пути, потому что все flatpages идентифицируются URL.

+0

Я пробовал с именем URL и работал: {% url 'about'%} – Lara

Смежные вопросы