2011-08-24 51 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