![](/img/trans.png)
[英]Django Rest Framework: how to get the current superuser in serialize?
[英]how to serialize current user in django rest framework?
我编写了一个自定义用户并为其定义了序列化程序,现在我有了一个用户发送 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."
]
}
}
有人有想法吗?
您可能需要将“用户实例”转换为字典,我建议这样做:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.