Добавление страницы в админ портал Django без модели - PullRequest
0 голосов
/ 10 июля 2020

Итак, я пытаюсь создать новую страницу на портале администратора Django, не имея модели, к которой ее можно было бы прикрепить. Пока что единственные страницы, которые у меня есть, похоже, основаны на моделях в моей базе данных. Я пытаюсь go выключить этот пример c: https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django .contrib.admin.ModelAdmin.get_urls , но пока мне не повезло. Кажется, что этот класс / функции никогда не попадают. Например, у меня есть приложение testapp, и в нем есть модели Model1 и Model2. Итак, на сайте администратора Django я вижу заголовок testapp с раскрывающимся списком, который показывает страницы Model1 и Model2. Я хочу добавить еще одну страницу, Обзор, на которой будет отображаться еженедельный обзор информации, но у меня нет модели обзора, и я не хочу создавать ее только для этого. Согласно ссылке, на которую я ссылался, я должен иметь доступ к странице через / admin / myapp / mymodel / my_view /, однако я получаю, что путь не соответствует ошибке.

class MyModelAdmin(admin.ModelAdmin):
    def get_urls(self):
        urls = super().get_urls()
        my_urls = [path("my_view/", self.admin_site.admin_view(self.my_view))]
        return my_urls + urls

    def my_view(self, request):
        # ...
        context = dict(
            # Include common variables for rendering the admin template.
            self.admin_site.each_context(request),
            # Anything else you want in the context...
            key=value,
        )
        return TemplateResponse(request, "sometemplate.html", context)

Это фрагмент кода Я добавил в myapp / admin.py и также создал шаблон. Мы приветствуем любые идеи о том, почему это не работает, или предложения о лучших способах сделать это.

...