9. Интеграция стороннего приложения¶
Мы уже написали свои собственные плагины и приложения для django CMS, но теперь мы хотим расширить нашу CMS с помощью стороннего приложения, Aldryn News & Blog.
9.1. Базовая установка¶
Сначала нам нужно установить приложение в нашу виртуальную среду из PyPI:
pip install aldryn-newsblog
9.2. Настройки Django¶
9.2.1. INSTALLED_APPS
¶
Добавьте приложение и все его требования, которых еще нет, в INSTALLED_APPS
в settings.py
. Некоторые будут уже присутствовать; вы должны проверить их, потому что вам нужно избежать дублирования:
# you will probably need to add:
'aldryn_apphooks_config',
'aldryn_boilerplates',
'aldryn_categories',
'aldryn_common',
'aldryn_newsblog',
'aldryn_people',
'parler',
'sortedm2m',
'taggit',
# and you will probably find the following already listed:
'easy_thumbnails',
'filer',
9.2.2. THUMBNAIL_PROCESSORS
¶
Одной из зависимостей является Django Filer. Он предоставляет специальную функцию, позволяющую более сложную обрезку изображений.
THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace',
'easy_thumbnails.processors.autocrop',
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
'easy_thumbnails.processors.filters',
)
Если THUMBNAIL_PROCESSORS
не определено в вашем settings.py
или имеет другие записи, просто скопируйте и вставьте приведенный выше код.
9.2.3. ALDRYN_BOILERPLATE_NAME
¶
Aldryn News & Blog использует aldryn-boilerplates для предоставления нескольких наборов шаблонов и статических файлов для различных CSS-фреймворков. В этом учебнике мы используем Bootstrap 3, поэтому давайте выберем bootstrap3
, добавив настройку:
ALDRYN_BOILERPLATE_NAME='bootstrap3'
9.2.4. STATICFILES_FINDERS
¶
Добавьте средство поиска статических файлов в STATICFILES_FINDERS
, непосредственно перед django.contrib.staticfiles.finders.AppDirectoriesFinder
:
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'aldryn_boilerplates.staticfile_finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
Если STATICFILES_FINDERS
не определено в вашем settings.py
, просто скопируйте и вставьте приведенный выше код.
9.2.5. TEMPLATES
¶
Важно
В Django 1.8 параметры TEMPLATE_LOADERS
и TEMPLATE_CONTEXT_PROCESSORS
объединены в параметр TEMPLATES
. Мы предполагаем, что здесь вы используете Django 1.8.
TEMPLATES = [
{
# ...
'OPTIONS': {
'context_processors': [
# ...
'aldryn_boilerplates.context_processors.boilerplate',
],
'loaders': [
# ...
'aldryn_boilerplates.template_loaders.AppDirectoriesLoader',
],
},
},
]
9.3. Перенос базы данных¶
Мы добавили новое приложение, поэтому нам необходимо обновить нашу базу данных:
python manage.py migrate
Снова запустите сервер.
9.4. Создайте новую страницу apphooked¶
Приложение News & Blog поставляется с приложением django CMS apphook, поэтому добавьте новую страницу django CMS (назовите ее News) и добавьте на нее приложение News & Blog just as you did for Polls.
Для этого приложения нам также необходимо создать и выбрать Конфигурацию приложения.
Придайте этой конфигурации приложения некоторые параметры:
Instance namespace
: news (это используется для обратного URL)Application title
: News (имя, которое будет представлять конфигурацию приложения в админке)Permalink type
: выберите формат, который вы предпочитаете для URL-адресов новостных статей
Сохраните эту конфигурацию приложения и убедитесь, что она выбрана в Application configurations
.
Опубликуйте новую страницу, и вы увидите, что приложение «Новости и блог» работает. (Пока вы не создадите статьи, оно будет просто сообщать вам, что Нет доступных статей).
9.5. Добавить новые новости и статьи в блог¶
Вы можете добавлять новые статьи, используя администратора или новое меню News, которое теперь появляется на панели инструментов, когда вы находитесь на странице, относящейся к разделу News & Blog.
Вы также можете вставить плагин Latest articles на другую страницу - как и все хорошие django CMS приложения, Aldryn News & Blog поставляется с плагинами.