[Answered ]-Django raw_id_fields read_only permission

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)
👤Darwin

Leave a comment