覆盖默认管理站点 - 找不到 myproject

Overriding the default admin site - can't find myproject

我正在尝试覆盖默认管理站点。我在这里关注了 Django 文档: https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#overriding-the-default-admin-site

我按照那里的说明做了所有事情,所以文件如下所示:

admin/admin.py:

from django.contrib import admin
from django.utils.translation import gettext as _, gettext_lazy

class CustomAdminSite(admin.AdminSite):
    # Text to put in each page's <h1>.
    site_header = gettext_lazy('TEST administration')

admin/apps.py

from django.contrib.admin.apps import AdminConfig

class CustomAdminConfig(AdminConfig):
    default_site = 'admin.CustomAdminSite'

core/urls.py

urlpatterns = [
    path(r'testadmin/', admin.site.urls),
]

core/settings.py

INSTALLED_APPS = [
    'admin.apps.CustomAdminConfig',
]

现在我收到一个 ImportError:

ImportError:模块“admin”未定义“CustomAdminSite”attribute/class

我认为这是因为 django 正在使用 CustomAdminSite class 寻找位于虚拟环境中的管理模块。事实并非如此,具有必要 python 文件的管理文件夹位于 myproject 的基本路径中。当我在我的设置中这样声明时:myproject.admin.apps.CustomAdminConfig 我收到 ModuleNotFOundError:

ModuleNotFoundError: 没有名为 'myproject'

的模块

我猜和上面说的一样。 Django 正在虚拟环境中寻找名为 myproject 的模块。

有没有办法在设置中更改此设置或以其他方式绕过此设置?

已解决! Iain Shelvington 的解决方案奏效了。另一个问题是我的主要 URLs.py