[Solved]-Django admin – group permissions to edit or view models

18👍

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:

class TicketAdmin(admin.ModelAdmin):
    ...
    def has_add_permission(self, request):
        return request.user.groups.filter(name='Developers').exists()

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

    def has_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.

0👍

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.

Leave a comment