Django Admin 的“编辑选择”操作?
我想写一个django-admin的操作,这个操作可以让用户在选择了零个或多个行的时候,能够把选中的项目一起编辑。我只需要一次编辑模型中的一个项目(“房间”),但我不想一个一个去手动编辑我所有的480个对象。
有没有办法弹出一个中间页面,让用户可以一起编辑这些项目呢?
4 个回答
0
在管理后台可能有一些方法可以做到这一点,但为什么不直接创建一个自定义视图来实现呢?
当你开始对管理后台进行大量自定义时,这就说明你应该考虑写一个自定义应用,这样你可以更方便地进行修改。其实,使用通用视图,你可以很轻松地实现大部分管理后台的功能。
记住,“管理后台并不是你的应用。”
1
这段代码给django-admin添加了一个操作,可以实现你想要的功能。你可以在这里找到更多信息:http://code.google.com/p/django-mass-edit/
3
你可以创建自定义的管理员操作,利用JavaScript或者自定义的表单,你可以轻松地创建弹出窗口、警告框,或者你想做的任何事情。例如,我在我某个应用的管理员界面中有这样的设置:
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提示框,获取用户输入,然后把这个输入传递给自定义操作函数,来完成你需要做的事情。
如果想了解更多,可以查看这里的内容:编写Django管理员操作。