几乎所有的答案都在谈论如何在类中设置当前用户与参数泛型。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)