覆盖默认管理站点 - 找不到 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
我正在尝试覆盖默认管理站点。我在这里关注了 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