Django Admin 从索引和应用程序页面中排除模型
Django Admin exclude model from index and app page
我想在管理索引页面和应用程序页面中隐藏一些模型。例如,我在 inlines
中看到的这些作为相关对象。
还有一点,我想保留使用 change_view
和 add_view
的能力,而不是该模型的 list_view
。
试图在 admin/templates/admin/*.html
个文件中找到任何提示,但没有找到任何有用的信息。
没有“黑客”、猴子补丁和外部库是否可能?
你可以试试这个
这将从索引中隐藏模型
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 documentation所说:
ModelAdmin.has_module_permission(request)
Should return True if displaying the module on the admin index page and accessing the module’s index page is permitted, False otherwise. Uses User.has_module_perms() by default. Overriding it does not restrict access to the view, add, change, or delete views.
为避免删除所有权限(如 get_model_perms()
),您可以将 has_module_permission()
方法重新定义为始终 return False
.
@admin.register(SomeModel)
class SomeModelAdmin(admin.ModelAdmin):
def has_module_permission(self, request):
return False
我想在管理索引页面和应用程序页面中隐藏一些模型。例如,我在 inlines
中看到的这些作为相关对象。
还有一点,我想保留使用 change_view
和 add_view
的能力,而不是该模型的 list_view
。
试图在 admin/templates/admin/*.html
个文件中找到任何提示,但没有找到任何有用的信息。
没有“黑客”、猴子补丁和外部库是否可能?
你可以试试这个
这将从索引中隐藏模型
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 documentation所说:
ModelAdmin.has_module_permission(request)
Should return True if displaying the module on the admin index page and accessing the module’s index page is permitted, False otherwise. Uses User.has_module_perms() by default. Overriding it does not restrict access to the view, add, change, or delete views.
为避免删除所有权限(如 get_model_perms()
),您可以将 has_module_permission()
方法重新定义为始终 return False
.
@admin.register(SomeModel)
class SomeModelAdmin(admin.ModelAdmin):
def has_module_permission(self, request):
return False