Итак, я пытаюсь создать новую страницу на портале администратора 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 и также создал шаблон. Мы приветствуем любые идеи о том, почему это не работает, или предложения о лучших способах сделать это.