我想从管理索引页面和应用程序页面隐藏一些模型。例如,我在inlines
中看到的这些作为相关对象
还有一点,我希望保留使用该模型的change_view
和add_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