Django: разрешения на основе экземпляра модели

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

Спасибо Эрик

Ответы

Ответ 1

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

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

Ответ 2

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