To understand Django, it helps to know its origins and how the framework has evolved. Django’s developers have added many features since the framework’s 1.0 release back in September 2008. Some of the major additions include aggregation support in the ORM, multi-database support, CSRF protection, a messaging framework, and many improvements to the models framework. This post outlines the major framework changes Django has gone through from 1.0 through the current stable 1.3 release. The intention for 1.x releases is that only minor code changes are necessary to transition Django projects from one version to another.
Django 1.0
(1.0 SVN Revision 8961, 1.0.4 SVN Revision 11613) [1]
Django 1.0 was released September 3, 2008 after a three year public incubation period and a total of five years of development [2]. Release 1.0 included features that are still core to the framework today, including the Model-Template-View (MTV) architecture, Object-Relational Mapper (ORM) models, explicit URL resolution with regular expression support, and a lightweight template system.
Django 1.1
(1.1 SVN Revision 11366, 1.1.4 SVN Revision 15477)
Django 1.1 was released Jul 29, 2009, just shy of 11 months after the official 1.0 release [3]. Version 1.1 included the following new features:
- Aggregate query support in the built-in object relational mapper
- Improvements to models
- Better support for unit testing through client object’s support functions
- URL namespaces
Django 1.2
(1.2 SVN Revision 13285, 1.2.5 SVN Revision 15476)
Django 1.2 was released May 17, 2010, approximately 10 months after the 1.1 release [4]. Major features added to Django in this release:
- Mandatory Cross Site Request Forgery protection for POSTs
- Support for more than one database in a single Django project
- Model validation based on the existing Forms validation mechanism
- User messages support through sessions and cookies
- Configurable email backends
Django 1.3
(1.3 SVN Revision 15906, 1.3.1 SVN Revision 16771)
Django 1.3 was released on March 23, 2011 [5]. New features in Django 1.3 included:
- Class-based views
- Support for Python’s standard logging mechanisms
- A new contrib app for serving static files
Django 1.4 and Beyond
There is currently no release date set for Django 1.4 although work continues in the public development branch. Django 1.4 will drop support for Python 2.4. The motivation behind the change is to use more context managers, a creation from Python 2.5, and make the internal Django code better. I wrote a post on Django 1.4 and how one of the Django core committers, Alex Gaynor, sees Django 1.4.
[2] Django 1.0 Release Announcement
[3] Django 1.1 Release Announcement