Django admin index modules is a Django app that gives you the ability to add widgets modules to the django admin dashboard (admin index).
- Installation:
pip install django-admin-index-modules
- comment "django.contrib.admin" and add "django_admin_index_modules.apps.CustomAdminConfig" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
...
#'django.contrib.admin',
'django_admin_index_modules.apps.CustomAdminConfig',
...
'django.contrib.staticfiles',
...
'django_admin_index_modules.apps.ModulesDashboardsConfig',
...
]
- In admin.py file of any other app create ypur widget module like this:
from django_admin_index_modules.admin import AdminModuleView
class VisitorsAdminModuleView(AdminModuleView):
template_name = 'visitors.html'
json_method_names = ['post']
http_method_names = ['get','post']
permissions = ['is_superuser']
css = []
js = []
def get(self, request, **kwargs):
context = {
'stats': "visitors"
}
return context
-
register your widget module using one of those methods:
-
- using register_module(AdminModuleView, position="middle_top") methods:
from django.contrib import admin
admin.site.register_module(VisitorsAdminModuleView, position="middle_top")
-
- using @register_module(position="middle_top") decorator:
from django_admin_index_modules.admin import register_module
@register_module(position="middle_top")
class VisitorsAdminModuleView(AdminModuleView):
...
-
- position keyword can take one of those values: top, middle_top, middle_bottom and bottom
-
create template file under "admin/modules/" than the name of the template file assigned to template_name propriety ex: "visitors.html"
-
Visit http://127.0.0.1:8000/admin/ to see your widget module.