{"title":"Django 4.0.3 release notes","version":"dev","locale":"en","docname":"releases/4.0.3","url":"/en/dev/releases/4.0.3/","canonical":"https://djangodocs.dev/en/dev/releases/4.0.3/","summary":"Django 4.0.3 fixes several bugs in 4.0.2. Also, all Python code in Django is reformatted with black.","html":"<h1>Django 4.0.3 release notes<a class=\"heading-anchor\" href=\"#django-4-0-3-release-notes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><em>March 1, 2022</em></p>\n<p>Django 4.0.3 fixes several bugs in 4.0.2. Also, all Python code in Django is\nreformatted with <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/black/\">black</a>.</p>\n<section id=\"bugfixes\">\n<h2>Bugfixes<a class=\"heading-anchor\" href=\"#bugfixes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul class=\"simple\">\n<li><p>Prevented, following a regression in Django 4.0.1, <a class=\"reference internal\" href=\"/en/dev/ref/django-admin/#django-admin-makemigrations\"><code class=\"xref std std-djadmin docutils literal notranslate\">makemigrations</code></a>\nfrom generating infinite migrations for a model with <code class=\"docutils literal notranslate\">ManyToManyField</code> to\na lowercased swappable model such as <code class=\"docutils literal notranslate\">'auth.user'</code> (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/33515\">#33515</a>).</p></li>\n<li><p>Fixed a regression in Django 4.0 that caused a crash when rendering invalid\ninlines with <a class=\"reference internal\" href=\"/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\">readonly_fields</code></a> in the\nadmin (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/33547\">#33547</a>).</p></li>\n</ul>\n</section>","rootId":"django-4-0-3-release-notes","toc":[{"title":"Bugfixes","anchor":"bugfixes","children":[]}],"breadcrumbs":[{"docname":"releases/index","title":"Release notes","url":"/en/dev/releases/"}],"prev":{"docname":"releases/4.0.4","title":"Django 4.0.4 release notes","url":"/en/dev/releases/4.0.4/"},"next":{"docname":"releases/4.0.2","title":"Django 4.0.2 release notes","url":"/en/dev/releases/4.0.2/"},"formats":{"html":"/en/dev/releases/4.0.3/","markdown":"/en/dev/releases/4.0.3.md","json":"/en/dev/releases/4.0.3.json"},"source":"https://github.com/django/django/blob/main/docs/releases/4.0.3.txt","official":"https://docs.djangoproject.com/en/dev/releases/4.0.3/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0"],"inLocales":["en"]}