﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32692	Django 3.2 automatic AppConfig discovery breaks projects working in 3.1.8	Manel Clos	nobody	"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`
{{{
{% extends 'admin/base_site.html' %}

{% block branding %}
Template test
{% endblock %}
}}}
- Add `myproject` to `INSTALLED_APPS`
{{{#!python
INSTALLED_APPS = [
    'myproject',

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
}}}
- `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
# myproject/admin.py
from django.contrib import admin

class MyAdminSite(admin.AdminSite):
    index_title = 'Test'


# myproject/apps.py
from django.contrib.admin.apps import AdminConfig

class MyAdminConfig(AdminConfig):
    default_site = 'myproject.admin.MyAdminSite'


# myproject/settings.py
INSTALLED_APPS = [
    'myproject',

    'myproject.apps.MyAdminConfig',  # 'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
}}}
- `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
{{{#!python
from django.contrib.admin.apps import AdminConfig

class MyAdminConfig(AdminConfig):
    default_site = 'myproject.admin.MyAdminSite'
}}}
- adjust settings.py: `'myproject.apps-admin.MyAdminConfig'` in INSTALLED_APPS
{{{#!python
INSTALLED_APPS = [
    'myproject',

    'myproject.apps-admin.MyAdminConfig',  # 'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
}}}
- works with Django 3.2 now!
"	Bug	new	Core (Other)	3.2	Normal				Unreviewed	0	0	0	0	0	0
