2017-09-25 83 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 
相关问题