Skip to content

Instantly share code, notes, and snippets.

@egorsmkv
Created March 4, 2017 12:57
Show Gist options
  • Save egorsmkv/0374b73a0f02697f6e1d038d916b3391 to your computer and use it in GitHub Desktop.
Save egorsmkv/0374b73a0f02697f6e1d038d916b3391 to your computer and use it in GitHub Desktop.
Краткая инструкция по установке FeinCMS
# Hello, FeinCMS
Инструкция по установке FeinCMS.
1) Создаём папку для проекта и переходим в неё
mkdir hello-feincms
cd hello-feincms
2) Создаём виртуальное окружение для проекта
virtualenv hello-feincms-ve
3) Активируем ВО
source hello-feincms-ve/bin/activate.fish
4) Устанавливаем сам FeinCMS из PyPI
pip install FeinCMS==1.13.1
5) Устанавливаем зависимости
pip install Django==1.10.6 django-mptt==0.8.7 Pillow==4.0.0
===
6) Создаём Django-проект и переходим в него
django-admin startproject feindemo
cd feindemo
7) Проверяем установку Django
./manage.py runserver
И переходим по адресу, который написан в консоли, у меня это http://127.0.0.1:8000/. Должны увидеть "It worked!", значит Django установлен правильно.
8) Отключаемся и делаем стандарные миграции
./manage.py migrate
9) Подключаем FeinCMS и его зависимости к нашему Django-проекту
Открываем файл feindemo/settings.py и дописываем к полю INSTALLED_APPS следующие данные:
INSTALLED_APPS = [
# ...
'feincms',
'mptt',
'feincms.module.page',
'feincms.module.medialibrary',
]
10) Добавляем FEINCMS_USE_PAGE_ADMIN=False в feindemo/settings.py чтобы отключить вывод ошибки при создании нового app'a для страниц
11) Создаём app для страниц FeinCMS
./manage.py startapp pages
Добавляем его в feindemo/settings.py в INSTALLED_APPS в конец и убираем FEINCMS_USE_PAGE_ADMIN=False.
11) Добавляем в файл pages/models.py основные блоки-страницы FeinCMS:
from django.utils.translation import ugettext_lazy as _
from feincms.module.page.models import Page
from feincms.content.richtext.models import RichTextContent
from feincms.content.medialibrary.models import MediaFileContent
Page.register_extensions('feincms.extensions.translations')
Page.register_templates({
'title': _('Standard template'),
'path': 'base.html',
'regions': (
('main', _('Main content area')),
('sidebar', _('Sidebar'), 'inherited'),
),
})
Page.create_content_type(RichTextContent)
Page.create_content_type(MediaFileContent, TYPE_CHOICES=(
('default', _('default')),
('lightbox', _('lightbox')),
))
12) Добавляем в feindemo/urls.py следующиее правило:
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('feincms.urls')),
]
13) Делаем миграции для FeinCMS
./manage.py makemigrations --empty feincms
./manage.py migrate feincms
./manage.py makemigrations page
./manage.py makemigrations medialibrary
./manage.py migrate
14) Добавляем базовый шаблон
Создаём файл templates/base.html
<div id="content">
{% block content %}
{% for content in feincms_page.content.main %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="sidebar">
{% block sidebar %}
{% for content in feincms_page.content.sidebar %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
В файле feindemo/settings.py в поле TEMPLATES добавляем путь к папке шаблонов:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'templates',
],
'APP_DIRS': True,
# ...
----
Осталось создать суперпользователя и добавлять страницы для FeinCMS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment