Установка и настройка приложения flatpages для добавления статических страниц из админки сайта
В этом блоге я расскажу, как установить и настроить приложение 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 и все заработало как часы!
Ваши комментарии
Комментарии могут оставлять только зарегистрированые пользователи!