Django: Permissions based on Model Instance
-
26-09-2019 - |
문제
I have a model class Project
and for each model instance, there should be a 'group' of users who may edit that instance. I guess I could add another model class called ProjectEditor to add those editors. Is there a better way of implementing this? What about checking for permissions? I would need to write my own permission method then too, right?
Thanks Eric
해결책
Model (table) level permissions can be achieved using the groups facility provided by Django auth
. Groups let you create custom permissions at a model level. Instance (row) level would be trickier. You would most likely have to write a custom mechanism to accomplish this.
Here is a Django Snippet that might give you some ideas.
다른 팁
Django Guardian seems to be the best solution today for Model instance level permissions.
There was an open source release for row/object level permissions by the washington times team that might be of use: