Django Admin Views 使用教程
项目介绍
django-admin-views
是一个简单的工具,用于在 Django 管理界面中添加自定义管理视图和直接 URL 链接。该项目旨在通过覆盖管理模板来提供两个主要功能:
- 轻松定义自定义管理视图并在管理页面中链接它们。
- 轻松添加外部 URL 链接。
项目快速启动
安装步骤
-
使用 pip 安装
django-admin-views
:pip install django-admin-views
-
在
settings.py
文件中,将admin_views
添加到INSTALLED_APPS
中,且位于django.contrib.admin
之前:INSTALLED_APPS = [ # 其他应用 'admin_views', 'django.contrib.admin', # 其他应用 ]
-
如果你使用自定义的 Admin Site,需要配置
ADMIN_VIEWS_SITE
设置以指向你的 Admin Site 实例:ADMIN_VIEWS_SITE = 'myproject.admin.admin_site'
使用示例
在你的模型管理定义中,只需从 AdminViews
继承而不是标准的 ModelAdmin
。以下是一个示例:
from django.contrib import admin
from admin_views.admin import AdminViews
from .models import MyModel
class MyModelAdmin(AdminViews):
def my_custom_view(self, request):
# 自定义视图逻辑
context = {
**self.admin_site.each_context(request),
'key': 'value'
}
return TemplateResponse(request, "sometemplate.html", context)
admin.site.register(MyModel, MyModelAdmin)
应用案例和最佳实践
应用案例
假设你有一个内部使用的 Django 项目,需要为内部员工提供一些额外的功能,例如数据导出或特定的数据查看界面。使用 django-admin-views
可以轻松地在管理界面中添加这些功能,而无需重新定义整个 Admin Site 对象。
最佳实践
- 权限控制:确保自定义视图有权限检查,以保证只有活跃的员工用户可以访问这些视图。
- 缓存控制:使用 Django 的
never_cache
装饰器,确保返回的信息是最新的。 - 模板继承:使用
admin/base_site.html
作为模板继承,以保持管理界面的统一风格。
典型生态项目
django-admin-views
可以与其他 Django 管理增强工具一起使用,例如:
- django-grappelli:一个 Django 管理界面的现代皮肤。
- django-admin-tools:提供自定义的管理界面工具栏和菜单。
- django-admin-sortable2:用于在管理界面中对模型进行排序的工具。
通过结合这些工具,可以进一步增强 Django 管理界面的功能和用户体验。