Skip to main content

Django Releases

This page presensts the history of Django starting from the latest version and going backward.

For newcomers, Django is a high-level, open-source Python web framework known for its rapid development capabilities and clean, pragmatic design.

Batteries-Included Philosophy

Django follows a "batteries-included" philosophy, which means it comes with a wide range of built-in features and tools, making it easier for developers to build web applications quickly.

Modular and Reusable

Django encourages the creation of modular and reusable code through its component-based architecture, known as "apps." This promotes code organization and maintainability.

ORM (Object-Relational Mapping)

Django includes a robust ORM system that allows developers to interact with databases using Python objects, abstracting away the need for complex SQL queries.

Admin Interface

Django provides an automatic admin interface for managing application data, which is a powerful tool for developers and administrators to work with the database.

Security

Django is built with security in mind and provides built-in features to protect against common web vulnerabilities, such as SQL injection, cross-site scripting (XSS), and cross-site request forgery (CSRF).

Scalability

Django applications can scale from small projects to large, high-traffic websites. It offers support for database sharding, caching, and other scalability features.


Django 4.2.6 (October, 2023):

  • Django 4.2.6 fixes several bugs in 4.2.5
  • Fix Security Issue CVE-2023-41164
    • Potential denial of service vulnerability in django.utils.encoding.uri_to_iri()

Django 4.2.4 (August, 2023):

  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.aggregate() with aggregates referencing window functions (#34717).
  • Fixed a regression in Django 4.2 that caused a crash when grouping by a reference in a subquery (#34748).
  • Fixed a regression in Django 4.2 that caused aggregation over query that uses explicit grouping by multi-valued annotations to group against the wrong columns (#34750).

Django 4.2.2 (June, 2023):

BugFixes:

  • Fixed a regression in Django 4.2 that caused an unnecessary DBMS_LOB.SUBSTR() wrapping in the isnull and exact=None lookups for TextField()/BinaryField() on Oracle (#34544).
  • Restored, following a regression in Django 4.2, get_prep_value() call in JSONField subclasses (#34539).
  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.defer() when passing a ManyToManyField or GenericForeignKey reference. While doing so is a no-op, it was allowed in older version (#34570).
  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.only() when passing a reverse OneToOneField reference (#34612).
  • Fixed a bug in Django 4.2 where makemigrations --update didn’t respect the --name option (#34568).
  • Fixed a performance regression in Django 4.2 when compiling queries without ordering (#34580).
  • Fixed a regression in Django 4.2 where nonexistent stylesheet was linked on a “Congratulations!” page (#34588).
  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.aggregate() with expressions referencing other aggregates (#34551).
  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.aggregate() with aggregates referencing subqueries (#34551).
  • Fixed a regression in Django 4.2 that caused a crash of querysets on SQLite when filtering on DecimalField against values outside of the defined range (#34590).
  • Fixed a regression in Django 4.2 that caused a serialization crash on a ManyToManyField without a natural key when its Manager’s base QuerySet used select_related() (#34620).

Django 4.2 (April, 2023):

  • Psycopg 3 support
    • Django now supports psycopg version 3.1.8 or higher. To update your code, install the psycopg library, you don`t need to change the ENGINE as django.db.backends.postgresql supports both libraries.
  • Comments on columns and tables
    • The new Field.db_comment and Meta.db_table_comment options allow creating comments on columns and tables, respectively.

Django 4.0 (December, 2021):

  • zoneinfo default timezone implementation
  • scrypt password hasher
  • Redis cache backend
  • Template based form rendering

Django 3.2 (April 2021):

  • Extended support for Python 3.9.
  • Introduced improved speed and performance enhancements.

Django 3.1 (August 2020):

  • Extended support for Python 3.8 and 3.9.
  • Introduced stricter database constraints.
  • Enhanced security features.

Django 3.0 (December 2019):

  • Dropped support for Python 3.5.
  • Added support for Python 3.8.
  • Introduced path converters in URL routing.

Django 2.2 (April 2019):

  • Extended support for Python 3.7 and 3.8.
  • Included database and performance improvements.

Django 2.1 (August 2018):

  • Added support for Python 3.7.
  • Included features like multi-database support and easier handling of static files.

Django 2.0 (December 2017):

  • Dropped support for Python 2.x.
  • Required Python 3.4 or later.
  • Included various improvements and updates.

Django 1.11 (April 2017):

  • Extended support for Python 3.6.
  • Introduced "subquery" expressions.
  • Included an easier way to format template text.

Django 1.10 (August 2016):

  • Introduced full support for Python 3.5.
  • Added features like template-based widget rendering.

Django 1.9 (December 2015):

  • Included support for PostgreSQL's "upsert" feature.
  • Improved password hashing.
  • Enhanced customizability of the admin interface.

Django 1.8 (April 2015):

  • Added support for the "Django Rest Framework."
  • Included native support for complex database types like JSON.
  • Other improvements.

Django 1.7 (September 2014):

  • Introduced the "migrations" framework as a core feature.
  • Allowed database schema changes to be version-controlled.

Django 1.6 (November 2013):

  • Brought significant improvements in testing and authentication.
  • Added support for database schema migrations.

Django 1.5 (February 2013):

  • Introduced custom user models.
  • Added a new timezone support model.
  • Configurable user authentication system.

Django 1.4 (March 2012):

  • Added timezone support.
  • Supported user-uploaded static files.
  • Improved scalability.

Django 1.3 (March 2011):

  • Added class-based views.
  • Improved file handling.
  • Better support for NoSQL databases.

Django 1.2 (May 2010):

  • Added support for multiple database connections.
  • Improved form handling.
  • Enhanced internationalization features.

Django 1.1 (July 2009):

  • Introduced features like aggregation and transaction-based testing.
  • Improved support for PostgreSQL.

Django 1.0 (September 2008):

  • First official stable release.
  • Included the admin interface, authentication, and many core features.

Django 0.96 (March 2006):

  • Focused on code quality and compatibility, laying the groundwork for future versions.

Django 0.95 (January 2006):

  • Added support for database migrations.
  • Improved documentation and template support.

Django 0.91 (October 2005):

  • Introduced features like the automatic admin interface and template inheritance.

Django 0.90 (July 2005):

  • First public release of Django.
  • Open-sourced under the BSD license.

This list covers the major releases of Django from the latest to the earliest versions.


Resources