Как добавить пользовательское представление в пользовательский AdminSite в Django

Я начинающий Django и в основном хочу добавить раздел в Django Admin, где если я нажму на него, у меня будет представление, которое может обрабатывать данные.

Например: У меня есть модели Campaign и Components, к которым я могу получить доступ через Django Admin, и теперь я также хочу опцию "Analytics", которая работает так же, как если бы это была модель. Возможно, это изображение прояснит то, что я хочу: Django should look like this

Когда я нажимаю на "Analytics", я хочу вызвать представление, которое может заполнить html-шаблон данными, которые я вычисляю из своих моделей, например, построить таблицу, которая подсчитывает мои экземпляры Campaigns и Components.

Что я сделал на данный момент: создал пользовательский AdminSite, чтобы перезаписать AdminSite по умолчанию. Проблема: я не вижу, чтобы моя опция появилась.

#admin.py
class MyAdminSite(admin.AdminSite):
    def get_urls(self):
        urls = super(MyAdminSite, self).get_urls()
        custom_urls = [
            path(r'myapi/test/', self.admin_view(testview)),
        ]
        return urls + custom_urls

    site_header = "My custom site"

admin_site = MyAdminSite(name="myadmin")
#apps.py
class MyAdminConfig(AdminConfig):
    default_site = "myapi.admin.MyAdminSite"
#settings.py
INSTALLED_APPS = [
    'rest_framework',
    #'django.contrib.admin',
    "myapi.apps.MyAdminConfig",
#views.py
@api_view(["GET", "POST"])
def testview(request):
    print("testmyview")
    return render(1, "mytest.html")
#urls.py
urlpatterns = [
    path('admin/', admin_site.urls),
    path('api/', include('myapi.urls')),
]

Я пытался следовать этому руководству: https://adriennedomingus.medium.com/adding-custom-views-or-templates-to-django-admin-740640cc6d42. но я думаю, что после перезаписи get_urls() я должен увидеть новую опцию, появляющуюся в моем Django Admin, чего не происходит.

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