Django Admin从索引和应用程序页面中排除模型



我想从管理索引页面和应用程序页面隐藏一些模型。例如,我在inlines中看到的这些作为相关对象
还有一点,我希望保留使用该模型的change_viewadd_view的能力,但不使用该模型中的list_view

尝试在admin/templates/admin/*.html文件中找到任何提示,但没有找到任何有用的提示。

没有";黑客";,monkey补丁和外部库?

你可以试试这个

这将从索引中隐藏模型

class YourModel(admin.ModelAdmin):
def get_model_perms(self, request):    
return {}  # return empty
admin.site.register(YourModel, YourModelAdmin)

关于Django管理员的更多信息https://docs.djangoproject.com/en/3.1/ref/contrib/admin/

Django文档告诉:

ModelAdminhas_module_permission(请求)
如果允许在管理索引页上显示模块并访问模块的索引页,则应返回True,否则应返回False。默认情况下使用User.has_module_perms()。替代它不会限制对视图的访问、添加、更改或删除视图。

为了避免删除所有权限(如get_model_perms()),可以将has_module_permission()方法重新定义为始终为return False

@admin.register(SomeModel)
class SomeModelAdmin(admin.ModelAdmin):
def has_module_permission(self, request):
return False

最新更新