Django Admin Cookbook-18如何限制对Django Admin管理部分功能的使用
返回目录
18.如何限制对Django Admin管理部分功能的使用?
你可以使用权限系统启用和限制对Django Admin后台部分功能的访问。添加模型时,默认情况下,Django会为其创建add添加, change修改以及delete删除三种权限。
可以在Admin后台中用这些权限来限制用户的访问。对于非超级管理员且没有权限的用户,后台会显示如下。
如果你添加一个权限user.user_permissions.add(Permission.objects.get(codename="add_hero"))
,则Admin后台会显示如下。
你可以通过更改以下方法,来添加更复杂的权限限制逻辑:
def has_add_permission(self, request):
...
def has_change_permission(self, request, obj=None):
...
def has_delete_permission(self, request, obj=None):
...
def has_module_permission(self, request):
...