************************************* 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`` subfolder exists in your project and is writable. .. note:: PROJECT_PATH is the absolute path to your project. See :ref:`configure-django-cms` for instructions on how to set PROJECT_PATH. **Remove** the following from :setting:`django:TEMPLATE_CONTEXT_PROCESSORS`:: django.core.context_processors.auth **Add** the following to :setting:`django:TEMPLATE_CONTEXT_PROCESSORS`:: django.contrib.auth.context_processors.auth django.core.context_processors.static sekizai.context_processors.sekizai **Remove** the following from :setting:`django: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('', url(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), url(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