【问题标题】:Overriding the default admin site - can't find myproject覆盖默认管理站点 - 找不到 myproject
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 2018-07-30
    • 2014-06-02
    • 2013-06-30
    • 2011-01-24
    • 2019-09-24
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多