Полномочия для action (Django Rest Framework)
Всем привет!
Есть объект Post, для которого могут быть применены Actions. В моем случае, это система лайкинга определенного поста. Реализовывал ее по ответу в одном из моих вопросов -
На ViewSet'е у меня стоит полномочие, что если author не является request.user, то мы не разрешаем POST запрос. Но как в итоге "ставить лайк другим"?
К примеру, вот URL - posts/39/like. Это считается POST запросом, но меня выкидывает на 403 ошибку - "detail": "У вас нет прав для выполнения этой операции."
Как поставить отдельные права/полномочия для actions у объекта?
Ответы (1 шт):
Пришло в голову такое решение - Так как это detail url для объекта Post, то тут по сути и негде делать POST запросы. Только если PUT или Delete.
Добавил в полномочия проверку на POST запрос - просто return True. А на PUT и Delete проверка является ли request.user == object.author.