我有一个关于如何在django rest framework中更新实例的问题。
所以基本上我想通过请求更新我的用户个人资料,但我无法获得当前用户ID。是否有更好的方法来获取当前用户并更新其信息?这不起作用,因为request.user始终是匿名的。
@api_view(['POST'])
def update_profile(request):
serializer = AccountSerializer(request.user, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
非常感谢你!
答案 0 :(得分:1)
如果此处request.user
始终是匿名的,您可以:
检查request.user.is_authenticated
之前的其他内容,并将未经身份验证的用户重定向到登录页面(或使用@login_required
装饰器),或
根据来自URL参数/ kwarg的数据获取user
对象,而不是基于发出请求的用户。例如,也许yourapp/users/1
从URL中获取1
并用于主键查找。