Just Digital

Turn it, leave it, stop format it

Migrating your application from Django 1.2 to 1.6

Django 1.6 is out as of 6th November 2013 and I've managed to earn myself enough spare time to have a look.

If it ain't broke, don't fix it

Why upgrade? Here's my two big reasons:

  1. Security. There have been 25 security releases issued since I first built this site back in October 2011
  2. I'm probably going to have to start upgrading our applications sometime soon so I thought I'd bite the bullet early on with a smaller project

Doing things in a Pythonic way pays off :) If I may I'll urge you to seek out the conventions and best practices. just-digital.net (codenamed jdblog) implements about 5 model classes and 5 views. It also has several context processors (for tweets and forms) and a middleware class for breadcrumbs. I managed to migrate the entire application without rewriting a single bit of code (not including settings.py)

The biggest issue was obviously the new project layout. I figured it would be faster and cleaner to start a new project using $ django-admin.py startproject - then copy-paste the apps, and adjust the settings.py accordingly. Doing it that way only cost me 2 hours.

Deprecated discountenance (all since 1.2)

  • mod_python support
  • Function-based generic views (django.views.generic.create_update, django.views.generic.date_based, django.views.generic.list_detail, django.views.generic.simple)
  • Test client response template attribute
  • DjangoTestRunner
  • Changes to url and ssi
  • Changes to the login methods of the admin
  • reset and sqlreset management commands
  • GeoDjango
  • CZBirthNumberField.clean
  • CompatCookie
  • Loading of project-level translations
  • PermWrapper moved to django.contrib.auth.context_processors
  • Removal of XMLField
  • Old styles of calling cache_page decorator
  • Support for PostgreSQL versions older than 8.2
  • Request exceptions are now always logged
  • django.conf.urls.defaults
  • django.contrib.databrowse
  • django.core.management.setup_environ
  • django.core.management.execute_manager
  • is_safe and needs_autoescape attributes of template filters
  • Wildcard expansion of application names in INSTALLED_APPS
  • HttpRequest.raw_post_data renamed to HttpRequest.body
  • django.contrib.sitemaps bug fix with potential performance implications
  • Versions of Python-Markdown earlier than 2.1
  • django.contrib.localflavor
  • django.contrib.markup
  • AUTH_PROFILE_MODULE
  • Streaming behavior of HttpResponse
  • django.utils.simplejson
  • django.utils.encoding.StrAndUnicode
  • django.utils.itercompat.product
  • cleanup management command
  • daily_cleanup.py script
  • depth keyword argument in select_related

For more information about version see release notes at 1.3, 1.4, 1.5, 1.6

  • Hiya!

    I'm a friendly local developer in New Zealand turning coffee into code and talking about it all here.
    - Kevin

  • Contact me

    Need some freelance or contract work, hire me for small or medium jobs. Contact me here.

  • Tweets

    "A Foolish Consistency is the Hobgoblin of Little Minds" #PEP8 should be taught in primary school. http://t.co/LZgPY4PA

    @shawn_hamman check out "Magnetospirillum magneticum". I want to keep some as pets. http://t.co/8xMa2Ntb

    "Getting the details right is the difference between something that delights, and something customers tolerate." http://t.co/JzMzpDDC

    http://t.co/kmenZSfF

    http://t.co/lJ2oswcM actually looks like a great #git strategy just need to convince @shawn_hamman @semaj_nil @medhatgayed @robertzp

  • Categories