Вы можете добавить либеральные права в settings.py файл и добавить более ограничительные в конкретном представлении api.
В settings.py, добавить что-то вроде:
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
),
вас может также использовать AllowAny
разрешение.
Вы можете установить политику проверки подлинности для каждого представления или для каждого представления, используя представления, основанные на классе APIView.
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class ExampleView(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
Или, если вы используете @api_view декоратора с видом на основе функций.
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
@api_view('GET')
@permission_classes((IsAuthenticated,))
def example_view(request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
При установке новых классов разрешений через атрибут класса или декоратор вы сообщаете вид, чтобы игнорировать список по умолчанию, установленный над файлом settings.py.
взгляд на этом уроке https://godjango.com/43-permissions-authentication-django-rest-framework-part-2/ –
Вы можете указать классы разрешений для каждого вида под Myweb/API. Здесь есть два примера: http://www.django-rest-framework.org/api-guide/permissions/#setting-the-permission-policy –