Django представление на основе функций позволяет пользователю is_active, тогда как ClassBasedView не позволяет пользователю is_active - PullRequest
0 голосов
/ 03 марта 2020

У меня 2 просмотра. Один основан на функциях, а другой - на классах. Когда я вызываю представление на основе функций с пользователем is_active , django не выдает никаких ошибок, но когда я вызываю представление на основе классов, оно возвращает 403 error . Любая помощь будет весьма оценили. Спасибо

from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import api_view, permission_classes

@require_POST
@permission_classes([IsAuthenticated,])
def test_function_based_view(request):
    return JsonResponse({
        'success': "True",
    })

class TestClassBasedView(APIView):

    permission_classes = (permissions.IsAuthenticated,)

    def post(self, request):
        return JsonResponse({
            'success': "True",
        })

Django Версия 1.11.21

1 Ответ

1 голос
/ 03 марта 2020

Возможно, проблема не в том, что представление на основе классов возвращает ошибку 403, а в том, что представление на основе функций неправильно проверяет разрешения. Это может быть вызвано тем, что @require_POST не учитывает разрешения.

Замените @require_POST в представлении на основе функций на @api_view(('POST',)).

...