我撰寫了一個自定義用戶并為其定義了序列化程式,現在我有了一個用戶發送 get 請求的端點。他應該以json格式獲取用戶資訊。由于我的回應格式如下
{
'messages': msg,
'data': data
}
我不知道如何序列化用戶或使用我的代碼的通用視圖:
class ProfileView(generics.RetrieveAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = UserSerializer
def retrieve(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.user)
if serializer.is_valid():
return successful_response(
messages=_('User Profile'),
data=serializer.data
)
return unsuccessful_response(serializer.errors)
和我得到的錯誤:
{
"errors": {
"non_field_errors": [
"Invalid data. Expected a dictionary, but got User."
]
}
}
有人有想法嗎?
uj5u.com熱心網友回復:
您可能需要將“用戶實體”轉換為字典我建議這樣做:
from django.forms.models import model_to_dict #this line
class ProfileView(generics.RetrieveAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = UserSerializer
def retrieve(self, request, *args, **kwargs):
serializer = self.serializer_class(data=model_to_dict(request.user))# instance converted to dict
if serializer.is_valid():
return successful_response(
messages=_('User Profile'),
data=serializer.data
)
return unsuccessful_response(serializer.errors)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395938.html
上一篇:將靜態資源添加到模板過濾功能
