2010-06-17 2 views
6

Я использую django flatpages для большого количества контента на нашем сайте, я хотел бы продлить его, чтобы принять теги шаблона django в контенте.Расширение Django Flatpages для принятия тегов шаблонов

Я нашел это snippet, но после многих жалоб о том, что я не мог заставить его работать. Правильно ли я предполагаю, что вам понадобится слишком «подкласс» приложения flatpages django, чтобы заставить его работать? Это лучший способ сделать это? Я не совсем уверен, как его структурировать, так как я действительно не хочу напрямую изменять дистрибутив django.

ответ

8

1. Простая страница вид которым будет оказывать теги шаблона путем загрузки шаблона для каждой страницы:

в url.py

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

в my_app/views.py

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

2. Другой метод с плоскими страницами, хранящимися в базе данных, равен t o используйте «шаблонный тег оценки» в вашем шаблоне, например this one.

редактировать Вы просто должны изменить flatpages template вроде этого:

<!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, Проблема заключается в том, что у меня много контента в приложении с плоскими страницами, но я часто хочу включать и Django-теги, а также вводить их через интерфейс с интерфейсами плоских страниц, я не хочу хранить контент отдельно в шаблонах, как я думаю, ваш пример показывает? Я взглянул на тег оценки шаблона, который вы предложили, но у меня возникли проблемы с пониманием того, как это поможет мне достичь цели –

+1

Тристан, я отредактировал свой ответ и добавил подробный шаблон. Надеюсь, поможет. –

+0

Привет Пьер, с вашим примером я лучше понимаю, как работает тег оценки, и это похоже на его решение для меня, спасибо, что нашли время, чтобы объяснить. Насколько я понимаю, оценочный_таг просто будет считывать выходные данные плоской страницы и обрабатывать соответствующие теги в этот момент времени. Выглядит отлично ... –

0

Альтернативный подход может заключаться в том, чтобы написать простое приложение, основанное на direct_to_template generic view.

+0

Hi Карлес, Это не помогло бы мне, как у меня есть много текста, введенного и поддерживается через интерфейс администратора плоских страниц, проблема в том, что мне нужно иметь возможность вводить теги шаблона django, а также простой текст и визуализировать их. –