2012-04-09 107 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