Почему 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',
]

А когда я загружаю индексную страницу администратора, она загружается нормально, но просто не регистрирует ни одну из моих моделей:

enter image description here

Может быть, у меня не тот 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),
]

Удивительно, но это не помогло. Страница загружается, но по-прежнему без моих моделей. Что я делаю не так? Мне кажется, что я буквально следовал довольно простым инструкциям, но какой-то шаг пропущен; предположительно, отсутствующие модели являются признаком того, что по какой-то причине все еще используется старая модель администратора, а не новая - но почему?

Вернуться на верх