【发布时间】:2020-11-24 23:59:18
【问题描述】:
我正在尝试覆盖默认管理站点。我在这里关注了 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')
管理员/apps.py
from django.contrib.admin.apps import AdminConfig
class CustomAdminConfig(AdminConfig):
default_site = 'admin.CustomAdminSite'
核心/urls.py
urlpatterns = [
path(r'testadmin/', admin.site.urls),
]
核心/settings.py
INSTALLED_APPS = [
'admin.apps.CustomAdminConfig',
]
现在我收到 ImportError:
ImportError:模块“admin”未定义“CustomAdminSite”属性/类
我认为这是因为 django 正在寻找一个管理模块,该管理模块位于具有 CustomAdminSite 类的虚拟环境中。情况并非如此,包含必要 python 文件的 admin 文件夹位于 myproject 的基本路径中。当我在我的设置中声明这一点时:myproject.admin.apps.CustomAdminConfig 我得到一个 ModuleNotFOundError:
ModuleNotFoundError: 没有名为“myproject”的模块
我猜和上面说的一样。 Django 正在虚拟环境中寻找一个名为 myproject 的模块。
有没有办法在设置中更改此设置或以其他方式绕过此设置?
【问题讨论】:
-
不应该是“admin.admin.CustomAdminSite”吗?
-
好一个!在apps.py 中改变了这个。现在它说:没有名为 apps.urls 的模块。
标签: django django-admin admin