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 (#30307). - Added compatibility for
psycopg2
2.8 (#30331). - Fixed a regression in Django 2.2 that caused a crash when loading the template for the technical 500 debug page (#30324).
- Fixed crash of
ordering
argument inArrayAgg
andStringAgg
when it contains an expression with params (#30332). - Fixed a regression in Django 2.2 that caused a single instance fast-delete to not set the primary key to
None
(#30330). - Prevented
makemigrations
from generating infinite migrations for check constraints and partial indexes whencondition
contains arange
object (#30350). - Reverted an optimization in Django 2.2 (#29725) that caused the inconsistent behavior of
count()
andexists()
on a reverse many-to-many relationship with a custom manager (#30325). - Fixed a regression in Django 2.2 where
Paginator
crashes ifobject_list
is a queryset ordered or aggregated over a nestedJSONField
key transform (#30335). - Fixed a regression in Django 2.2 where
IntegerField
validation of database limits crashes iflimit_value
attribute in a custom validator is callable (#30328). - Fixed a regression in Django 2.2 where
SearchVector
generates SQL that is not indexable (#30385). - Fixed a regression in Django 2.2 that caused an exception to be raised when a custom error handler could not be imported (#30318).
- Relaxed the system check added in Django 2.2 for the admin app’s dependencies to reallow use of
SessionMiddleware
subclasses, rather than requiringdjango.contrib.sessions
to be inINSTALLED_APPS
(#30312). - Increased the default timeout when using
Watchman
to 5 seconds to prevent falling back toStatReloader
on larger projects and made it customizable via theDJANGO_WATCHMAN_TIMEOUT
environment variable (#30361). - 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 (#30351).
- Fixed a regression in Django 2.2 that caused a crash of
runserver
when URLConf modules raised exceptions (#30323). - Fixed a regression in Django 2.2 where changes were not reliably detected by auto-reloader when using
StatReloader
(#30323). - Fixed a migration crash on Oracle and PostgreSQL when adding a check constraint with a
contains
,startswith
, orendswith
lookup (or their case-insensitive variant) (#30408). - Fixed a migration crash on Oracle and SQLite when adding a check constraint with
condition
contains|
(OR
) operator (#30412).