【问题标题】:Django Admin "Edit Selection" Action?Django Admin“编辑选择”操作?
【发布时间】:2010-12-20 11:27:29
【问题描述】:

我想编写一个 django-admin 操作(当用户选择零行或多行时使用),这将允许他们将所选项目作为一个组进行编辑。我一次只需要编辑模型中的一个项目(“房间”),但我不想遍历所有 480 个对象并逐个手动编辑它们。

有没有办法抛出一个允许用户作为一个组编辑项目的插页式页面?

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:

    您可以创建自定义管理操作,并使用 JavaScript 或自定义 ModleForms 您可以轻松创建弹出窗口或警报,或任何您想做的事情。例如,我在我的一个应用程序的管理员中有这个:

    admin.py:

    def deactivate_selected(modeladmin, request, queryset):
        rows_updated = queryset.update(active=0)
        for obj in queryset: obj.save()
        if rows_updated == 1:
            message_bit = '1 item was'
        else:
            message_bit = '%s items were' % rows_updated
        modeladmin.message_user(request, '%s successfully deactivated.' % message_bit)
    deactivate_selected.short_description = "Deactivate selected items"
    
    ## add deactivates 
    admin.site.add_action(deactivate_selected)
    

    这会将选项添加到管理页面中的“停用选定项目”。

    在我看来,对“更新所选项目的空间”进行自定义操作会很容易,该操作会显示 JavaScript 提示,接受该输入,并将其提供给自定义操作函数以执行您需要的操作做。

    更多阅读可以在这里找到:Writing Django Admin Actions

    【讨论】:

      【解决方案2】:

      这段代码添加了一个 django-admin 操作来做你想做的事情http://code.google.com/p/django-mass-edit/

      【讨论】:

        【解决方案3】:

        在管理员中可能有一些方法可以做到这一点,但为什么不直接创建一个自定义视图来做到这一点呢?

        当您开始对管理员进行大量自定义时,这表明您应该开始编写可以轻松修改的自定义应用程序。使用generic views实际上很容易获得管理员的大部分功能。

        记住,“The Admin is not your app.

        【讨论】:

          【解决方案4】:

          您可以使用 pip 下载 django-admin 操作

          pip install django-adminactions

          这是一个为您提供许多 django-admin 操作的应用程序,例如批量编辑。

          在此处查看安装:http://django-adminactions.readthedocs.io/en/latest/install.html

          【讨论】:

            猜你喜欢
            • 2012-04-10
            • 2016-02-11
            • 2020-12-11
            • 2017-07-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-11-02
            相关资源
            最近更新 更多