如何在Django-Rest-Framework中设置当前user_id ?



几乎所有的答案都在谈论如何在类中设置当前用户与参数泛型。listcreateapiview。这里我用的是APIView我用的是function 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)。当我在前端创建新视频时。如果我给了一个坏的请求错误。

您可以使用:

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(序列化器。错误,状态= status.HTTP_400_BAD_REQUEST)

最新更新