Upgrading from 2.1.x and Django 1.2.x

Upgrading dependencies

Upgrade both your version of django CMS and Django by running the following commands.

pipinstall--upgradedjango-cms==2.2django==1.3.1

If you are using django-reversion make sure to have at least version 1.4 installed

pipinstall--upgradedjango-reversion==1.4

Also, make sure that django-mptt stays at a version compatible with django CMS

pipinstall--upgradedjango-mptt==0.5.1

Updates to settings.py

The following changes will need to be made in your settings.py file:

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

Note

These are not django CMS settings. Refer to the Django documentation on staticfiles for more information.

Note

Please make sure the static sub-folder exists in your project and is writeable.

Note

PROJECT_PATH is the absolute path to your project.

Remove the following from TEMPLATE_CONTEXT_PROCESSORS:

django.core.context_processors.auth

Add the following to TEMPLATE_CONTEXT_PROCESSORS:

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

Remove the following from MIDDLEWARE_CLASSES:

cms.middleware.media.PlaceholderMediaMiddleware

Remove the following from INSTALLED_APPS:

publisher

Add the following to INSTALLED_APPS:

sekizai
django.contrib.staticfiles

Template Updates

Make sure to add sekizai tags and cms_toolbar to your CMS templates.

Note

cms_toolbar is only needed if you wish to use the front-end editing. See Backwards incompatible changes for more information

Here is a simple example for a base template called 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>

Database Updates

Run the following commands to upgrade your database

pythonmanage.pysyncdb
pythonmanage.pymigrate

Static Media

Add the following to urls.py to serve static media when developing:

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

Also run this command to collect static files into your STATIC_ROOT:

python manage.py collectstatic