Skip to content Skip to sidebar Skip to footer

Django Admin - Group Permissions To Edit Or View Models

I'm searching for a way to customize the Django Administration to support permissions based on the user group. For example, I've just created the Developers group, now I've also cr

Solution 1:

ModelAdmin has three methods dealing with user permission: has_add_permission, has_change_permission and has_delete_permission. All three should return boolean (True/False).

So you could do something like:

classTicketAdmin(admin.ModelAdmin):
    ...
    defhas_add_permission(self, request):
        return request.user.groups.filter(name='Developers').exists()

    defhas_change_permission(self, request, obj=None):
        return request.user.groups.filter(name='Developers').exists()

    defhas_delete_permission(self, request, obj=None):
        return request.user.groups.filter(name='Developers').exists()

When False is returned from one of these, it's results in a 403 Forbidden.

Solution 2:

I had tried hours to find a way to edit custom admin's(based on my custom model) permission by some click on screen,without many coding.

Use Django's /admin/auth/user/ "User permissions:part"

Finally I find this: Just to install django-admin-view-permission

and I can change the staff's custom models' permission here enter image description here

Also in the group part /admin/auth/group/add/ I can create a group has certain permission, and assign specific staff to their permission group.

Post a Comment for "Django Admin - Group Permissions To Edit Or View Models"