-------------------
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>`__.