Django Admin“编辑选择”动作?

时间:2009-11-25 21:17:16

标签: python django django-admin

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

有没有办法抛出插页式页面,允许用户将这些项目编辑为一个组?

4 个答案:

答案 0 :(得分:3)

您可以创建自定义管理操作,使用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

答案 1 :(得分:0)

此代码添加了一个django-admin操作来执行您想要的操作http://code.google.com/p/django-mass-edit/

答案 2 :(得分:0)

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

pip install django-adminactions

这是一款为您提供许多django-admin操作的应用,例如群发编辑。

请在此处查看安装:docs

答案 3 :(得分:-1)

有可能在管理员中执行此操作,但为什么不创建自定义视图来执行此操作?

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

请记住,“The Admin is not your app.