Opened 4 years ago

Last modified 4 years ago

#32692 closed Bug

Django 3.2 automatic AppConfig discovery breaks projects working in 3.1.8 — at Initial Version

Reported by: Manel Clos Owned by: nobody
Component: contrib.admin Version: 3.2
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

The described method of overriding the default admin site (https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#overriding-the-default-admin-site), is not compatible with automatic AppConfig discovery, if the app (myproject, or myapps) is already in INSTALLED_APPS.

How to reproduce

  • pip install Django==3.2
  • django-admin startproject myproject
  • python manage.py migrate
  • python manage.py createsuperuser
  • Put a template in myproject/templates/admin/base_site.html
  • Add myproject to INSTALLED_APPS
  • python manage.py runserver works, I can access the admin site and see the changes in templates
  • Follow the guide to override the default admin site, https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#overriding-the-default-admin-site, this is, create myproject/admin.py, myproject/apps.py and modify settings.py.
  • python manage.py runserver

Actual result
RuntimeError: 'myproject.apps' declares more than one default AppConfig: 'AdminConfig', 'MyAdminConfig'.`

This a regression

  • pip install Django==3.1.8
  • python manage.py runserver
  • All ok, both templates and AdminConfig working at the same time

Workaroud

  • use app-admin.py instead of apps.py when following the documentation to override the default admin site
  • adjust settings.py: 'myproject.apps-admin.MyAdminConfig' in INSTALLED_APPS
  • works with Django 3.2

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top