Вопрос о получении уникального сообщения в случае использования нескольких разрешений в DRF.
Например, у меня есть 2 следующих класса разрешений:
class PermOne(permissions.IsAuthenticated):
message = ‘message one’
def has_object_permission(self, request, view, obj):
return obj.entry_author == request.user
class PermTwo(permissions.IsAuthenticated):
message = ‘message two’
def has_object_permission(self, request, view, obj):
return request.user.is_active
class MyView( generics.CreateAPIView):
permission_classes = (PermOne |PermTwo)
…
…
…
Проблема в том, что я объединяю 2 или более ремиссия с такими операторами, как | &
, в случае сбоя вместо уникального сообщения, определенного в каждом классе разрешений, я получаю стандартный
{
"detail": "You do not have permission to perform this action."
}
, тогда как в случае только одного класса разрешения сообщение успешно берется из класса разрешений .
Конечно, я могу объединить 2 разрешения в одном классе и определить logi c выбора сообщения внутри этого класса, но это нормально для 2 разрешений, а как насчет 5? Кажется, что это против потока.
В любом случае, можно ли предоставить уникальное сообщение, используемое для каждого класса разрешений, в случае их объединения через |
или &
???
Спасибо!