Обновление с версии 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