Django 2.2.1 release notes

May 1, 2019

Django 2.2.1 fixes several bugs in 2.2.

Bugfixes

  • Fixed a regression in Django 2.1 that caused the incorrect quoting of database user password when using dbshell on Oracle (#%s30307).
  • Added compatibility for psycopg2 2.8 (#%s30331).
  • Fixed a regression in Django 2.2 that caused a crash when loading the template for the technical 500 debug page (#%s30324).
  • Fixed crash of ordering argument in ArrayAgg and StringAgg when it contains an expression with params (#%s30332).
  • Fixed a regression in Django 2.2 that caused a single instance fast-delete to not set the primary key to None (#%s30330).
  • Prevented makemigrations from generating infinite migrations for check constraints and partial indexes when condition contains a range object (#%s30350).
  • Reverted an optimization in Django 2.2 (#%s29725) that caused the inconsistent behavior of count() and exists() on a reverse many-to-many relationship with a custom manager (#%s30325).
  • Fixed a regression in Django 2.2 where Paginator crashes if object_list is a queryset ordered or aggregated over a nested JSONField key transform (#%s30335).
  • Fixed a regression in Django 2.2 where IntegerField validation of database limits crashes if limit_value attribute in a custom validator is callable (#%s30328).
  • Fixed a regression in Django 2.2 where SearchVector generates SQL that is not indexable (#%s30385).
  • Fixed a regression in Django 2.2 that caused an exception to be raised when a custom error handler could not be imported (#%s30318).
  • Relaxed the system check added in Django 2.2 for the admin app’s dependencies to reallow use of SessionMiddleware subclasses, rather than requiring django.contrib.sessions to be in INSTALLED_APPS (#%s30312).
  • Increased the default timeout when using Watchman to 5 seconds to prevent falling back to StatReloader on larger projects and made it customizable via the DJANGO_WATCHMAN_TIMEOUT environment variable (#%s30361).
  • Fixed a regression in Django 2.2 that caused a crash when migrating permissions for proxy models if the target permissions already existed. For example, when a permission had been created manually or a model had been migrated from concrete to proxy (#%s30351).
  • Fixed a regression in Django 2.2 that caused a crash of runserver when URLConf modules raised exceptions (#%s30323).
  • Fixed a regression in Django 2.2 where changes were not reliably detected by auto-reloader when using StatReloader (#%s30323).
  • Fixed a migration crash on Oracle and PostgreSQL when adding a check constraint with a contains, startswith, or endswith lookup (or their case-insensitive variant) (#%s30408).
  • Fixed a migration crash on Oracle and SQLite when adding a check constraint with condition contains | (OR) operator (#%s30412).