У меня есть REST api, созданный с использованием DRF 3.0.1. Если я использую класс разрешений rest_framework.permissions.IsAuthenticated
, любой аутентифицированный пользователь может выполнять действия GET, POST и т. Д. Для любого пользователя, поскольку он имеет действительный токен.django-rest-framework: настройка на пользовательские разрешения
Я хочу установить разрешения для каждого пользователя, чтобы пользователь мог видеть и обновлять данные всех пользователей, но любой пользователь, не являющийся администратором, должен иметь возможность видеть и обновлять только свои данные.
Из примеров, которые я видел до сих пор, кажется rest_framework.permissions.DjangoObjectPermissions
- это класс, который мне нужно использовать. Однако в примерах используются представления на основе классов.
В моем коде я использовал функции на основе представлений. Можно ли реализовать это, используя функции, основанные на представлениях? Выполнение queryset = <Model>.objects.non()
, как предложено в DRF doc, не помогает. Он жалуется Cannot apply DjangoModelPermissions on a view that does not have .model or .queryset property.
Есть ли способ, которым я могу это сделать, не переходя от FBV к CBV?
Отлично! Мне потребовалось некоторое время, чтобы понять разрешение, но это действительно потрясающе. Спасибо! – Dharmit