Django混合,可轻松为任何ModelAdmin添加urls
项目描述
可插入的Django应用程序,提供了一个单例混合类ExtraUrlMixin,可轻松将新的url(和屏幕上的相关按钮)添加到任何ModelAdmin。
它提供了两个装饰器link()和action()。
link()用于多记录,将在更改列表视图中生成按钮。
action()针对单个记录。它将在更改表单视图中生成按钮。
安装
pip install admin-extra-urls
安装后,将其添加到INSTALLED_APPS
INSTALLED_APPS = (
...
'admin_extra_urls',
)
如何使用
from admin_extra_urls.extras import ExtraUrlMixin, link, action
class MyModelModelAdmin(ExtraUrlMixin, admin.ModelAdmin):
@link() # /admin/myapp/mymodel/update_all/
def update_all(self, request):
...
...
@action() # /admin/myapp/mymodel/update/10/
def update(self, request, pk):
obj = self.get_object(pk=pk)
...
您不需要返回HttpResponse。默认行为是
使用link()按钮将在“列表”视图中显示,浏览器将重定向到changelist_view
使用action()按钮将在“更新”视图中显示,浏览器将重定向到change_view
link() / action() 选项
路径 |
无 |
动作的路径 URL 路径。将是指向按钮的 URL。 |
标签 |
无 |
按钮标签。默认为“标签化”的函数名 |
图标 |
'' |
按钮图标 |
权限 |
无 |
使用按钮所需的权限。可以是可调用的(当前对象作为参数)。 |
CSS 类 |
“btn btn-success” |
按钮的额外 CSS 类 |
顺序 |
999 |
如果有多个按钮,则使用此顺序 |
可见性 |
lambda o: o and o.pk |
可调用或布尔值。默认情况下,在 添加 模式下不显示“动作”按钮 |
与其他库的集成
django-import-export
@admin.register(Rule)
class RuleAdmin(ExtraUrlMixin, ImportExportMixin, BaseModelAdmin):
@link(label='Export')
def _export(self, request):
if '_changelist_filters' in request.GET:
real_query = QueryDict(request.GET.get('_changelist_filters'))
request.GET = real_query
return self.export_action(request)
@link(label='Import')
def _import(self, request):
return self.import_action(request)
链接
稳定 |
||||
开发 |
||||
项目主页 |
||||
问题追踪 |
https://github.com/saxix/django-admin-extra-urls/issues?sort |
|||
下载 |
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
admin-extra-urls-2.2.0.tar.gz (30.9 kB 查看哈希值)