Как установить текущий 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)