You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin中has_module_permission如何与Inline模型协同工作?

Django InlineModelAdmin中has_module_permission方法的疑问

尽管有其他ModelAdmin方法可用于隐藏内联模型,但官方文档指出InlineModelAdmin与ModelAdmin共享has_module_permission特性。

该方法在ModelAdmin对象上的表现符合文档描述,但我不清楚它在InlineModelAdmin对象上的工作机制及预期表现。

class HideModuleAdmin(admin.ModelAdmin):
    def has_module_permission(self, request):
        if condition:
            # 按预期工作:从菜单中隐藏该模型
            return False
        return super().has_module_permission(request)


class HideTabularInlineModelAdmin(admin.TabularInline):
    def has_module_permission(self, request):
        if condition:
            # 未按预期工作:内联模型出现在我不想看到的地方
            return False
        return super().has_module_permission(request)

我在需要的地方直接继承上述类,示例如下:

class SomeModelAdmin(HideModuleAdmin):
    pass

class SomeTabularInline(HideTabularInlineModelAdmin):
    pass

内容的提问来源于stack exchange,提问作者Eric O.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:27:00