Как установить текущий user_id в Django-Rest-Framework?

Все ответы говорят о том, как установить текущего пользователя в классе с paraemter generics.ListCreateAPIView. Но я просто использую APIView и использую функцию "post" для отправки данных.

Может ли кто-нибудь подсказать мне, как я могу установить текущий user_id в этом файле. И нужно ли мне добавить что-то в serializers.py?

views.py

class CreateVideo(APIView):
    permissions_classes = [IsAuthenticated]
    parser_classes = [MultiPartParser, FormParser]

    def post(self, request, format=None):
        print(request.data)
        serializer = VideoSerializer(data=request.data)
        user=self.request.user.id
        if serializer.is_valid():
            serializer.save(user)
            return Response(serializer.data, status=status.HTTP_200_OK)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Я создал переменную "user" с self.request.user.id в ней, а затем передал ее в serializer.save(user). И когда я создал новое видео на стороне frontend. Я выдал ошибку Bad Reuest Error.

Вы можете использовать:

serializer.save(user=request.user)

Вам нужно пройти request.user вместо self.request.user.

убедитесь, что пользователь вошел в систему или нет?

def post(self, request, format=None):
        print(request.data)
        serializer = VideoSerializer(data=request.data)
        user=request.user
        if serializer.is_valid():
            serializer.save(user=user)
            return Response(serializer.data, status=status.HTTP_200_OK)
        else:
            return Res

ponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Вернуться на верх