如何在Django rest框架中更新实例?

时间:2017-10-29 21:49:31

标签: python django django-rest-framework

我有一个关于如何在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) 

非常感谢你!

1 个答案:

答案 0 :(得分:1)

如果此处request.user始终是匿名的,您可以:

  1. 检查request.user.is_authenticated之前的其他内容,并将未经身份验证的用户重定向到登录页面(或使用@login_required装饰器),或

  2. 根据来自URL参数/ kwarg的数据获取user对象,而不是基于发出请求的用户。例如,也许yourapp/users/1从URL中获取1并用于主键查找。