Ответ 1
Вы можете добавить логику разрешений для просмотра, чтобы перезаписать проверку разрешения модели. Создайте объект класса BasePermission и добавьте его в свой атрибут permission_classes. Не забудьте IsAuthenticated, если вы не хотите разрешать анонимным пользователям.
class EnumChoices(views.APIView):
class EnumPermission(permissions.BasePermission):
def has_permission(self, request, view):
# whatever permission logic you need, e.g.
return request.user.has_perm("planning.view_enums")
permission_classes = (permissions.IsAuthenticated, EnumPermission)
def get(self, request):
enums = {}
return Response(enums)
Теперь представление обеспечит аутентификацию пользователя и имеет разрешение view_enums.
Дополнительная информация здесь: http://www.django-rest-framework.org/api-guide/permissions/#custom-permissions