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
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.
Source:stackexchange.com