Django: разрешения, основанные на экземпляре модели - PullRequest
13 голосов
/ 08 августа 2010

У меня есть модель class Project, и для каждого экземпляра модели должна быть «группа» пользователей, которые могут редактировать этот экземпляр.Я думаю, я мог бы добавить еще один класс модели ProjectEditor, чтобы добавить эти редакторы.Есть ли лучший способ реализовать это?Как насчет проверки разрешений?Мне бы тоже пришлось написать свой собственный метод разрешения, верно?

Спасибо, Эрик

Ответы [ 3 ]

13 голосов
/ 19 декабря 2013

Django Guardian представляется сегодня наилучшим решением для разрешений уровня экземпляра модели.

3 голосов
/ 08 августа 2010

Разрешения уровня модели (таблицы) можно получить с помощью средства groups , предоставленного Django auth. Группы позволяют создавать собственные разрешения на уровне модель . Экземпляр (строка) уровень будет сложнее. Скорее всего, вам придется написать собственный механизм для достижения этой цели.

Вот фрагмент кода Django , который может дать вам некоторые идеи.

2 голосов
/ 08 августа 2010

Была выпущена версия с открытым исходным кодом для разрешений на уровне строк / объектов от команды washington times, которая может быть полезна:

...