簡體   English   中英

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

[英]How to update an instance in Django rest framework?

我有一個關於如何在django rest框架中更新實例的問題。

因此,基本上我想通過請求更新我的用戶個人資料,但無法獲取當前用戶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) 

非常感謝!

如果request.user在此處始終是匿名的,則可以:

  1. 首先檢查一下request.user.is_authenticated然后將未經身份驗證的用戶重定向到登錄頁面(或使用@login_required裝飾器),或者

  2. 根據來自URL參數/ kwarg的數據獲取user對象,而不是基於發出請求的用戶。 例如,也許yourapp/users/1從URL中獲取1並用於主鍵查找。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM