Я пытаюсь переопределить сайт администратора по умолчанию. Я следил за документами 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»
I думаю, это потому, что django ищет модуль администратора, который живет внутри виртуальной среды с классом CustomAdminSite. Это не так, админ-папка с необходимыми python файлами находится в базовом пути myproject. Когда я указываю это в своих настройках, например: myproject.admin.apps.CustomAdminConfig, я получаю ModuleNotFOundError:
ModuleNotFoundError: нет модуля с именем myproject
Я думаю то же, что указано выше. Django ищет модуль с именем myproject внутри виртуальной среды.
Есть ли способ изменить это в настройках или каким-то другим способом обойти это?