2👍
✅
As you’ve said, this is really weird. Thats why I’ve opted to “extend” the django admin to my specific requirements sometimes.
The easiest way to meet this goal is by overriding the has_change_permission of the referenced ModelAdmin
As you have the request object as an argument of the method, you can evaluate:
- if the request comes from a raw_id_field or not
- if the user has permissions to see that models or not
- any other constraint you have
A simple prototype for the method:
def has_change_permission(self, request, obj=None):
if obj is None and '_popup' in request.GET:
return True
return super(MyAdmin, self).has_change_permission(request, obj)
Source:stackexchange.com