каждого action modeladmin в models создал permission с таким же названием и дальше в get_actions проверяю доступы и удаляю дейсвие если у пользака нет пермишена. Это норм? Или есть способ попроще?
звучит норм но я бы декоратор еще сделал, чтобы делать так @method_decorator(name='get_actions', decorator=check_perm(create=Permisson1, list=Permission2)) SomeViewSet(...)
Декоратор на что вешать? И что бы он делал?
чтобы руками 10 раз не переписывать get_actions
А я его в одну строку делаю, отдельная функция берет actions, request, opts и отдает отфильтрованный actions. Функция вызывается в getactions. Но да можно как раз ее и сделать декоратором.
@method_decorator(name='create', decorator=permission_decorator(Permissions.MATRIX_CREATE)) @method_decorator(name='destroy', decorator=permission_decorator(Permissions.MATRIX_DELETE)) @method_decorator(name='update', decorator=permission_decorator(Permissions.MATRIX_UPDATE)) @method_decorator(name='partial_update', decorator=permission_decorator(Permissions.MATRIX_UPDATE)) class MonitoringMatrixViewSet(ModelViewSet) мой пример
Обсуждают сегодня