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 поставляется с плагинами.