跳转到主要内容

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

与其他库的集成

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)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

admin-extra-urls-2.2.0.tar.gz (30.9 kB 查看哈希值)

上传时间

构建分布

admin_extra_urls-2.2.0-py2.py3-none-any.whl (14.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面