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

Вернуться на верх