Почему Django не подхватывает мое администраторское переопределение?
Я пытаюсь переопределить метод index администратора Django для моего api проекта, следуя руководству здесь.
В api/admin.py у меня есть
class ApiAdminSite(admin.AdminSite):
def index(self, request, extra_context=None):
raise Exception('to see if I am even being called') # I remove this when satisfied
....
admin_site = ApiAdminSite()
admin_site.register(MaxImpactFundGrant, MaxImpactFundGrantAdmin)
admin_site.register(Evaluation, EvaluationAdmin)
# and other model registrations
В api/apps.py у меня есть
from django.apps import AppConfig
from django.contrib.admin.apps import AdminConfig
class ApiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'api'
class ApiAdminConfig(AdminConfig):
default_site = 'api.admin.ApiAdminSite'
В api/.../settings.py, он же папка выше моего приложения, он же не файл настроек, указанный в руководстве, у меня есть
INSTALLED_APPS = [
'api.apps.ApiConfig',
'modeltranslation',
'api.apps.ApiAdminConfig',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
А когда я загружаю индексную страницу администратора, она загружается нормально, но просто не регистрирует ни одну из моих моделей:
Может быть, у меня не тот settings.py? Но я попробовал создать его в папке api и добавить в него только этот список, и ничего не изменилось. Я также попробовал отредактировать файл urls.py верхнего уровня, чтобы указать нового администратора, хотя мне пришлось взломать его, чтобы дать новому администратору атрибут 'site':
from django.urls import path, include
from django.contrib import admin
from api.admin import admin_site
admin_site.site = admin.site
urlpatterns = [
path('api/', include('api.urls')),
path('admin/', admin_site.site.urls),
]
Удивительно, но это не помогло. Страница загружается, но по-прежнему без моих моделей. Что я делаю не так? Мне кажется, что я буквально следовал довольно простым инструкциям, но какой-то шаг пропущен; предположительно, отсутствующие модели являются признаком того, что по какой-то причине все еще используется старая модель администратора, а не новая - но почему?
