I am looking for the best way to implement user permissions to allow users to edit specific model instances.
For instance, I have such two models:
model
You are looking for an object permission implementation. A good comparison is here: http://djangopackages.com/grids/g/perms/
Shameless plug: Heres my fork of a very popular per-object permission app: http://github.com/azizmb/django-authority
If I am getting you correct, what you need to implement is called row level permissions in Django. Have a look at this if it helps. http://code.djangoproject.com/wiki/RowLevelPermissionsDeveloper