0

Django:インラインを動的に削除するにはどうすればよいですか?

4

1 に答える 1

0

何らかの理由で、オブジェクトへのアクセス許可を持たないユーザーでも、インライン経由でアクセスできます。それらを動的に削除する方法は次のとおりです。

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)
于 2009-09-25T13:47:12.050 に答える