Пользовательский вид на главной странице администратора

Я хочу отображать некоторую информацию в админке index.html, но не хочу использовать для этого контекстные процессоры, а иметь свой собственный вид.

Поэтому я попробовал так, как описано в документации и обсуждалось здесь.

Мое приложение называется virtual, поэтому я сделал:

в virtual/admin.py:

class VirtualAdminSite(admin.AdminSite):
    index_template = "virtual/admin_index.html"

    def index(self, request, extra_context=None):
        extra_context = extra_context or {}
        return super().index(request, extra_context)

admin_site = VirtualAdminSite(name="virtualAdminSite")

в virtual/apps.py:

class VirtualAdminConfig(AdminConfig):
    default_site = "virtual.admin.VirtualAdminSite"

в файле project/settings.py

INSTALLED_APPS  = ["virtual.apps.VirtualConfig",
                   "virtual.apps.VirtualAdminConfig", ...]

Затем я столкнулся с ошибкой:

ImportError: Module "virtual.admin" does not define a "VirtualAdminSite" attribute/class

Если я использую "django.contrib.admin" вместо virtual.apps.VirtualAdminConfig, все работает просто отлично.

Итак, два вопроса:

  1. почему происходит эта ошибка, мне кажется, что я скопировал это прямо из документации?
  2. Я предположил, что могу добавить некоторые переменные в VirtualAdminSite extra_context и показать их в шаблоне индекса с помощью {{ имя_переменной }}. - правильно ли это?
Вернуться на верх