Django как сделать страницу просмотра логов
Логи пишу через библиотека logging лежат в папке logs Вопрос. Как мне в админку добавить страницу. Без модели. Произвольную страницу. Чтобы я там например вывел логи и какую нить простую формочку для поиска / фильтра сделать
может есть какая то заготовка?
Создание кастомной страницы в админ панели мало чем отличается от создания обычной странице на django. Вопрос достаточно обширный и я напишу тезисно, что надо сделать, относительно вашего какого-то приложения (views.py, urls.py)
Во
views.pyпишете обычное представлениеfrom django.shortcuts import rende def show_admin_panel_custom(request): context = {'data': 'test'} return render(request, 'any_path/admin_panel_custom.html', context)Создаете шаблон
admin_panel_custom.htmlи наследуете его отadmin/base_site.html. Пример{% extends 'admin/base_site.html' %} ....Определим URLs в
urls.pyfrom django.conf.urls import url from django.contrib.auth.decorators import user_passes_test from any_path.views show_admin_panel_custom urlpatterns = [ url(r'^admin-added-page/$', user_passes_test(lambda u: u.is_superuser)(show_admin_panel_custom), name='show_admin_panel_custom'), ]
В общем, то, и все. Не забудьте прокинуть URLы приложения до URLов проекта и по ссылке http://localhost:8000/admin-added-page вам будет доступна страничка, причем если вы обратите внимание на ссылку, то я сразу ограничил доступ к ней только для суперпользователя. any_path - это путь до приложения и необходимо прописать ваше значение
Далее, есть несколько путей добавления ссылки в админке на эту страницу, но это отдельный вопрос и с этим вам уже будет под силу разобраться