Django:如何动态删除内联?

时间:2009-09-25 13:46:58

标签: django inline

Django:如何动态删除内联?

1 个答案:

答案 0 :(得分:0)

由于某些原因,对该对象没有权限的用户仍然可以通过Inlines访问它。以下是动态删除它们的方法:

class FooAdmin(admin.ModelAdmin):
    inlines = ['SomeInline']
    ...
    def change_view(self, request, object_id, extra_context=None):
        def delete_inlines(inlines):
            for index, inline in reversed(list(enumerate(self.inlines))):
                if inline.__name__ in inlines:
                   del self.inlines[index]
                   del self.inline_instances[index]
        delete_inlines(['SomeInline' ])
        return super(FooAdmin, self).change_view(request, object_id, extra_context=None)