2017-09-25 81 views
0

我有模型A,B和AB。 對象有一個ManyToMany字段A.m,它可以通過我的中介模型AB鏈接到許多B對象。
我有一個非常好的TabularInline部分充滿AB對象,在我的管理頁面上爲我的A模型。如何從TabularInline管理員字段中刪除添加和編輯按鈕?

一切都很好。除了TabularInline部分顯示每個AB對象行中的B對象的Add和Edit鏈接,並且我想刪除這些按鈕。我仍然希望能夠添加,編輯和刪除AB對象行,而不是它們引用的B對象。

我已經嘗試將can_add_related,can_change_related,can_delete_related屬性設置爲False,但此操作無效。

class ABInline(admin.TabularInline): 
    model = AB 
    def get_form(self, request, obj=None, **kwargs): 
     form = super(ABInline, self).get_form(request, obj, **kwargs) 
     form.base_fields['m'].widget.can_add_related = False 
     form.base_fields['m'].widget.can_change_related = False 
     form.base_fields['m'].widget.can_delete_related = False 
     return form 

這是一個錯誤?或者有沒有不同的方式來實現TabularInline字段?

回答

0

您可以嘗試使用此功能:

docs

class ABInline(admin.TabularInline): 
    model = AB 

    def has_add_permission(self, request): 
     return False 

    def has_change_permission(self, request, obj=None): 
     return False 

    def has_delete_permission(self, request, obj=None): 
     return False 
相關問題