2012-04-09 157 views
0

我有class.Now我想删除删除功能为所有50款具有的ModelAdmin作为基地周围50管理员模式。我认为有两种方法。删除的删除权限的所有Django管理模式

  1. 重新定义has_delete_permission方法返回false并删除所有50个模型(大量工作)的'delete_selected'操作。
  2. 做如上django.contrib.admin.AdminModel提到的同样的事情。这意味着改变源代码。

我不想改变源代码。他们有什么其他的方式来达到这个目的有两种方法吗?

回答

0

3。创建具有这两项调整一个管理员混合类,并加入到基类现有50个ModelAdmins

4。猴补丁的ModelAdmin(会影响到所有的车型,不只是你的50)

5。猴补丁,你的管理员(如果它是所有的应用程序的模型,你可以只通过注册管理员迭代的搭配属于你的应用程序的那些)

我会亲自去3.是否有可能其他的东西,这些的ModelAdmin的共同之处?添加基类/ mixin是一次性努力,然后你可以很容易地进行其他更改。

PS:如果你想确保模型不会被删除,它可能是明智的,以确保其默认经理的查询集不删之一:https://stackoverflow.com/a/6459797/640759

+0

它可以删除网站使用宽删除动作: 'admin.site.disable_action( 'delete_selected')'。 但是如何为每条记录“删除”选项?有没有类似的方法? – girishs 2012-04-10 04:26:00