• Language: en
  • Documentation version: development

Django 2.2 release notes - UNDER DEVELOPMENT

Expected April 2019

Welcome to Django 2.2!

These release notes cover the new features, as well as some backwards incompatible changes you’ll want to be aware of when upgrading from Django 2.1 or earlier. We’ve begun the deprecation process for some features.

See the Upgrading Django to a newer version guide if you’re updating an existing project.

Django 2.2 is designated as a long-term support release. It will receive security updates for at least three years after its release. Support for the previous LTS, Django 1.11, will end in April 2020.

Python compatibility

Django 2.2 supports Python 3.5, 3.6, and 3.7. We highly recommend and only officially support the latest release of each series.

What’s new in Django 2.2

Check Constraints

The new CheckConstraint class enables adding custom database constraints. Constraints are added to models using the Meta.constraints option.

Minor features

django.contrib.gis

django.contrib.postgres

django.contrib.staticfiles

Cache

CSRF

Database backends

Email

File Storage

File Uploads

Forms

Generic Views

Internationalization

Management Commands

Migrations

  • The new migrate --plan option prints the list of migration operations that will be performed.

Models

Requests and Responses

Serialization

  • You can now deserialize data using natural keys containing forward references by passing handle_forward_references=True to serializers.deserialize(). Additionally, loaddata handles forward references automatically.

Signals

Templates

Tests

URLs

Validators

Backwards incompatible changes in 2.2

Database backend API

  • Third-party database backends must implement support for table check constraints or set DatabaseFeatures.supports_table_check_constraints to False.
  • Third party database backends must implement support for ignoring constraints or uniqueness errors while inserting or set DatabaseFeatures.supports_ignore_conflicts to False.

django.contrib.gis

  • Support for GDAL 1.9 and 1.10 is dropped.

Miscellaneous

  • On SQLite, PositiveIntegerField and PositiveSmallIntegerField now include a check constraint to prevent negative values in the database. If you have existing invalid data and run a migration that recreates a table, you’ll see CHECK constraint failed.
  • For consistency with WSGI servers, the test client now sets the Content-Length header to a string rather than an integer.
  • The return value of django.utils.text.slugify() is no longer marked as HTML safe.

Features deprecated in 2.2

Miscellaneous

Back to Top