Как добавить дополнительные функции к разрешению пользователя в django?

Я новичок в джанго. Я хочу изменить auth_permissions пользователя по умолчанию. Точнее, я хочу добавить целочисленное поле в дополнение к функциям «метка», «код» для разных типов разрешений (например, сильное, умеренное и т. д.). Пока ничего подобного найти не смог. Я пытался сделать пользовательские разрешения, но не смог добавить их в базу данных разрешений. Кто-нибудь может мне помочь?


person Aytaj Badirova    schedule 22.04.2020    source источник


Ответы (1)


Разрешение на объект

Когда я впервые попал в django, я также пытался полагаться на структуру разрешений в django, я также обнаружил, что разрешения были слишком широкими и неэффективными, что привело меня к исследованию django-guardian, я попытался отправить редактирование к самому проекту Django, чтобы сделать больше разрешений на основе объектов, но безуспешно, они сказали, что разрешения на объекты слишком персонализированы для фреймворка.

Дело в том, что после того, как я начал работать в отрасли, я понял, как люди делают эти разрешения в отрасли (что, честно говоря, меня беспокоило), они в основном создают настраиваемые промежуточные программы для входа в систему, чтобы отслеживать типы аутентификации и добавлять проверки в представление. сам. Таким образом, в основном вам нужно будет проверить в представлении, кто является пользователем, и хотите ли вы дать ему разрешение на что-либо.

Когда в Массачусетском технологическом институте они продолжали просить меня сделать какие-то странные разрешения, и я создал таблицу под названием ExtraordinaryPermissions, у нее был внешний ключ для пользователя, и ее можно было использовать для проверки в представлениях, к каким объектам пользователь имел доступ.

Это хлопотно, но в отрасли так выдаются разрешения на объект.

удачи

person Mr-Programs    schedule 23.04.2020
comment
Большое тебе спасибо. Думаю, это тот ответ, который мне был нужен. - person Aytaj Badirova; 01.05.2020
comment
@AytajBadirova, тогда обязательно поставьте лайк и отметьте это как окончательный ответ: P - person Mr-Programs; 03.05.2020