Django-upgrade

Latest version: v1.23.1

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 6

1.14.1

-------------------

* Fix bug in ``STORAGES`` fixer when only one of ``DEFAULT_FILE_STORAGE`` or ``STATICFILES_STORAGE`` was defined.

Thanks to Bruno Alla in `PR 376 <https://github.com/adamchainz/django-upgrade/pull/376>`__.

1.14.0

-------------------

* Support Python 3.12.

1.13.0

-------------------

* Add Django 4.2+ fixer to combine deprecated ``DEFAULT_FILE_STORAGE`` and ``STATICFILES_STORAGE`` settings into the new ``STORAGES`` setting.

* Add Django 4.2+ fixer to rewrite HTTP headers passed to test ``Client`` and ``RequestFactory``.

Thanks to David Wobrock in `PR 305 <https://github.com/adamchainz/django-upgrade/pull/305>`__.

* Add Django 4.2+ fixer to rewrite test case methods ``assertFormsetError()`` and ``assertQuerysetEqual()`` into the new spellings with capitalized “Set”.

Thanks to Michael Howitz in `PR 253 <https://github.com/adamchainz/django-upgrade/pull/253>`__.

* Add Django 4.0 fixer to rewrite ``django.contrib.admin.utils.lookup_needs_distinct`` -> ``lookup_spawns_duplicates``.

Thanks to Bruno Alla in `PR 313 <https://github.com/adamchainz/django-upgrade/pull/313>`__.

* Rewrite ``request.META`` -> ``request.headers`` on the *right hand side* of assignments.

* Group some compatibility import replacements into a single “fixer”, optimizing runtime by about 3%.

Thanks to Thibaut Decombe in `PR 295 <https://github.com/adamchainz/django-upgrade/pull/295>`__.

1.12.0

-------------------

* Make ``re_path`` -> ``path`` fixer also convert ``include()``\'s with unterminated regexes.

Thanks to Thibaut Decombe in `PR 279 <https://github.com/adamchainz/django-upgrade/pull/279>`__.

* Avoid rewriting ``request.META`` to ``request.headers`` in ``del`` statements.
This pattern works for ``request.META`` but not for ``request.headers`` which is an immutable mapping.

Thanks to Thibaut Decombe in `PR 290 <https://github.com/adamchainz/django-upgrade/pull/290>`__.

* Add Django 1.9+ fixer to rename the legacy engine name ``django.db.backends.postgresql_psycopg2`` in ``settings.DATABASES`` to ``django.db.backends.postgresql``.

Thanks to Thibaut Decombe in `PR 280 <https://github.com/adamchainz/django-upgrade/pull/280>`__.

* Make detection of management commands and migration files detect both forward and backward slashes as directory separators.

Thanks to William Claassen in `PR 286 <https://github.com/adamchainz/django-upgrade/pull/286>`__.

1.11.0

-------------------

See also `the release blog post <https://adamj.eu/tech/2022/10/26/django-upgrade-mega-release/>`__.

* Add Django 1.7+ fixer to rewrite ``admin.site.register()`` calls into ``admin.register()`` when eligible.

Thanks to Thibaut Decombe in `PR 189 <https://github.com/adamchainz/django-upgrade/pull/189>`__.

* Add Django 3.2+ fixer to rewrite admin action function attributes to use the ``admin.action()`` decorator.

* Add Django 3.2+ fixer to rewrite admin display function attributes to use the ``admin.display()`` decorator.

* Add Django 4.1+ fixer to rewrite calls to test case methods ``assertFormError()`` and ``assertFormsetError()`` from their old signatures to the new ones.

* Add Django 2.0+ fixer to drop assignments of ``allow_tags`` attributes to ``True``.

* Add Django 3.1+ fixer to replace ``list`` error message key with ``list_invalid`` on ``ModelMultipleChoiceField``.

Thanks to Thibaut Decombe in `PR 258 <https://github.com/adamchainz/django-upgrade/pull/258>`__.

* Make ``request.headers`` fixer also rewrite accesses of the ``content-length`` and ``content-type`` headers.

Thanks to Christian Bundy in `PR 226 <https://github.com/adamchainz/django-upgrade/pull/226>`__.

* Extend ``request.headers`` fixer to rewrite ``in`` and ``not in`` comparisons on ``request.META``.

Thanks to Daan Vielen in `Issue 234 <https://github.com/adamchainz/django-upgrade/issues/234>`__.

* The ``request.headers`` fixer now uses lowercase for header lookups, as per the HTTP/2 specification.

* Make ``on_delete`` fixer also support ``ForeignKey`` and ``OneToOneField`` imported from ``django.db.models``.

Thanks to Thibaut Decombe in `PR 236 <https://github.com/adamchainz/django-upgrade/pull/236>`__.

* Make ``NullBooleanField`` fixer preserve existing ``null`` arguments.

Thanks to Joseph Zammit in `Issue 245 <https://github.com/adamchainz/django-upgrade/issues/245>`__.

* Update ``timezone.utc`` fixer to only use absolute references from existing imports of the ``datetime`` module.

* Make Django 2.0+ URL fixer avoid a loop of adding imports that already exist.

Thanks to Benjamin Bach for the report in `Issue 250 <https://github.com/adamchainz/django-upgrade/issues/250>`__, and to Thibaut Decombe for the fix in `PR #270 <https://github.com/adamchainz/django-upgrade/pull/270>`__.

* Fixers that modify string literals now match existing use of double quotes.

Thanks to Kevin Marsh in `PR 260 <https://github.com/adamchainz/django-upgrade/pull/260>`__.

* Make fixers that erase lines also erase any trailing comments.

* Fix leaving a trailing comma when editing imports in certain cases.

* Expand the range of files considered settings files.

* Require at least one filename.

Thanks to Daan Vielen in `Issue 238 <https://github.com/adamchainz/django-upgrade/issues/238>`__.

* Update README with info on how to run an upgrade on entire project.

Thanks to Daan Vielen in `Issue 240 <https://github.com/adamchainz/django-upgrade/issues/240>`__.

1.10.0

-------------------

* Add Django 3.2+ fixer to update ``requires_system_checks`` in management command classes.

Thanks to Bruno Alla in `PR 184 <https://github.com/adamchainz/django-upgrade/pull/184>`__.

Page 3 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.