Установка и настройка приложения flatpages для добавления статических страниц из админки сайта

    blazer |   12.11.2015 |   14:15:16 |   Django |

В этом блоге я расскажу, как установить и настроить приложение flatpages для добавления статических страниц из админки сайта на django.

Друзяь, если Вы решили изучать Python/Django в нашей школе практического программирования, то советую вам добавить мой блог в закладки он вам очень пригодится, тут я записываю весь свой путь изучения django, вам будет легче пройти этот путь т.к. вы можете избежать многих трудностей!

Начнемс.

Открываем документацию по установке и настройке данного приложения на сайте djbook.ru
Видим, что первым делом нам нужно добавить в свой файл настроек settings.py несколько параметров.

В INSTALLED_APPS добавляем

settings.py

'django.contrib.sites', 
'django.contrib.flatpages',

В MIDDLEWARE_CLASSES добавляем

settings.py

'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',

 

В любом месте в файле settings.py вставляем этот параметр

SITE_ID = 1

Далее выполняем миграцию в базу данных. Я выполнял командой syncdb.

Если по каким либо причинам при миграции у вас выходят ошибки, как было в моем случае, то обновите версию django не ниже 1.7.10

Далее переходим в админку и видим, что добавились несколько разделов - это

  • Простые страницы
  • Сайты

Заходим в простые страницы и жмем добавить страницу. В открытом окне заполняем поля как на скриншоте

Тут все просто думаю разберетесь. Единственное, что в поле Sites вам нужно добавить свой сайт и указать параметр SITE_ID = 1 или SITE_ID = 2 если собираетесь использовать на нескольких сайтах.

Далее переходим в главный файл urls.py вашего проекта и там делаем ссылку на эту страницу.

url(r'^(?P<url>contact/)$', 'django.contrib.flatpages.views.flatpage'),

По этому урлу ваша страница будет выводится.

Далее в папке templates создаем папку flatpages и в ней файл default.html

В файле default.html наследуемся от главного шаблона и пишем простые теги для вывода текста.

{% extends 'base.html' %} 
{% block content %} 
<h1>{{ flatpage.title }}</h1> 
{{ flatpage.content }}
 {% endblock %}

Все, теперь у вас будет работать статическая страница, которую вы добавили в админке сайта.

Что бы добавить визуальный редактор - нужно переопределить поле content модели flatpages.

D:\OpenServer\domains\virtualenv\myenv\Lib\site-packages\django\contrib\flatpages\models.py

from ckeditor_uploader.fields import RichTextUploadingField

content = RichTextUploadingField(_('content'), blank=True)

Дополнительный материал с YouTube.

Более подробнее о программировании на Python/Django можно унать в нашей школе в которой я на данный момен прохожу обучение и мои результаты вы видете на этом тестовом сайте!

Проблема с которой я столкнулся при установки и навтройке flatpages - это не проходила миграция в базу данных таблиц для приложения.

Вот сама ошибка миграции

django.db.utils.ProgrammingError: (1146, "Table 'sharelink-ru-55.django_site' doesn't exist")

В общем поборол я эту проблему следующим образом.

1. Удалил базу данных полностью;
2. Создал новую базу данных с прежним названием и залил в нее ранее созданный дамп базы данных.
3. Удалил в базе данных в таблице django_migrations все записи миграции;
4. Удалил с виртуального окружения в Pycharm Django 1.7.7 и сам каталог тоже удалил
5. В Pycharm очистил кеш file -> invalidate Caches -> invalidate and restart
6. Установил другую версию Джанго в моем случае это 1.7.10

Все проблема с добавлением миграции приложения flatpages отпала как грязь от лаптя.

Забыл еще сказать, что устанавливал джанго 1.8.6, но дело не пошло т.к. очень много стало ошибок. Я несколько исправлений сделал, но стали новые появляться. В общим я забил на это и поставил 1.7.10 и все заработало как часы!

Ваши комментарии

Комментарии могут оставлять только зарегистрированые пользователи!

Disqus - комментарии

blog comments powered by Disqus