Обновление с версии 2.1.x и Django 1.2.x

Обновление зависимостей

Обновите версию django CMS и Django, выполнив следующие команды.

pip install --upgrade django-cms==2.2 django==1.3.1

Если вы используете django-reversion, убедитесь, что у вас установлена как минимум версия 1.4

pip install --upgrade django-reversion==1.4

Также убедитесь, что django-mptt остается в версии, совместимой с django CMS

pip install --upgrade django-mptt==0.5.1

Обновления к settings.py

В ваш файл settings.py необходимо внести следующие изменения:

ADMIN_MEDIA_PREFIX = '/static/admin'
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATIC_URL = "/static/"

Примечание

Это не настройки django CMS. Для получения дополнительной информации обратитесь к документации Django по staticfiles.

Примечание

Убедитесь, что вложенная папка static существует в вашем проекте и доступна для записи.

Примечание

PROJECT_PATH - это абсолютный путь к вашему проекту.

Удалите следующее из TEMPLATE_CONTEXT_PROCESSORS:

django.core.context_processors.auth

Добавьте следующее в TEMPLATE_CONTEXT_PROCESSORS:

django.contrib.auth.context_processors.auth
django.core.context_processors.static
sekizai.context_processors.sekizai

Удалите следующее из MIDDLEWARE_CLASSES:

cms.middleware.media.PlaceholderMediaMiddleware

Удалите следующее из INSTALLED_APPS:

publisher

Добавьте следующее в INSTALLED_APPS:

sekizai
django.contrib.staticfiles

Обновления шаблонов

Обязательно добавьте теги sekizai и cms_toolbar в шаблоны CMS.

Примечание

cms_toolbar необходим только в том случае, если вы хотите использовать внешнее редактирование. См. Обратные несовместимые изменения для получения дополнительной информации

Вот простой пример для базового шаблона под названием base.html:

{% load cms_tags sekizai_tags %}
<html>
  <head>
      {% render_block "css" %}
  </head>
  <body>
      {% cms_toolbar %}
      {% placeholder base_content %}
      {% block base_content%}{% endblock %}
      {% render_block "js" %}
  </body>
</html>

Обновления базы данных

Выполните следующие команды для обновления базы данных

python manage.py syncdb
python manage.py migrate

Статические медиа

Добавьте следующее к urls.py, чтобы обслуживать статические медиа при разработке:

if settings.DEBUG:
    urlpatterns = patterns('',
    re_path(r'^media/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
    re_path(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns

Также выполните эту команду для сбора статических файлов в ваш STATIC_ROOT:

python manage.py collectstatic
Вернуться на верх