##################################### 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. .. code-block:: bash pip install --upgrade django-cms==2.2 django==1.3.1 If you are using django-reversion make sure to have at least version 1.4 installed .. code-block:: bash pip install --upgrade django-reversion==1.4 Also, make sure that django-mptt stays at a version compatible with django CMS .. code-block:: bash pip install --upgrade django-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. .. _staticfiles: http://readthedocs.org/docs/django/en/latest/ref/contrib/staticfiles.html .. 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 :setting:`django:INSTALLED_APPS`:: publisher **Add** the following to :setting:`django: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 :ref:`backwards-incompatible-changes` for more information Here is a simple example for a base template called ``base.html``: .. code-block:: html+django {% load cms_tags sekizai_tags %} {% render_block "css" %} {% cms_toolbar %} {% placeholder base_content %} {% block base_content%}{% endblock %} {% render_block "js" %} **************** Database Updates **************** Run the following commands to upgrade your database .. code-block:: bash python manage.py syncdb python manage.py migrate ************ Static Media ************ Add the following to ``urls.py`` to serve static media when developing:: if settings.DEBUG: urlpatterns = patterns('', re_path(r'^media/(?P.*)$', '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 :setting:`django:STATIC_ROOT`:: python manage.py collectstatic