2011-08-24 54 views
1

我使用TabularInlines來管理django admin中的多對多關係。當滿足一些條件時,我想只進行內聯讀取。爲了實現這一點,我重寫了BaseModelAdmin中的get_readonly_fields()方法。TabularInlines只讀字段是可刪除的

這就像一個魅力,唯一的問題,只讀字段仍然是可刪除的(複選框刪除仍然存在,仍然有效)。

當然,我可以將can_delete字段設置爲TabularInlineFalse,但是這樣可以防止刪除也不是隻讀的情況。

我的問題:如何設置TabularInline,我可以禁止在只讀字段中刪除,並且如果字段是可讀寫的,則啓用它?

編輯:我使用Django 1.3,但如果解決方案也適用於1.2它將是完美的!

回答

1

我想你想要做的是設置has_delete_permission(self, obj=None)。這將允許您決定何時可以並且不能刪除整個內聯。

+0

這是一個很好的提示。我會試一試。 – Constantinius