在Django-Rest框架中创建一个带有扩展用户模型的补丁方法让我感到困惑。希望你们能帮忙。在
我的扩展用户模型:
class Profile(models.Model):
user = models.OneToOneField(User, unique=True)
bio = models.CharField
我的序列化程序:
^{pr2}$我的视图集:
class UserUpdateAPIView(ReadOnlyModelViewSet):
queryset = User.objects.all()
serializer_class = UserEditSerializer
@detail_route(methods=['PATCH'])
def edit(self, request):
user_obj = User.objects.get(user__id=request.user.id)
print(user_obj)
serializer = UserEditSerializer(user_obj, data=request.data, partial=True)
print(request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(status=status.HTTP_400_BAD_REQUEST)
与邮递员一起发送的数据(json)
{“电子邮件”:231@sda.com“,“profile”:{“bio”:“Cant send request”}}
错误:
Profile.Bio cant response true data
照片:
UserEditSerializer的模型是
Profile
类。但您尝试将其作为对象User
实例传递。您需要更改序列化程序类:或视图:
^{pr2}$升级版
要使嵌套关系可写,您需要重写序列化程序的}方法,请参阅doc中的详细信息。
示例:
^{3}$create
和{您还需要发布这样的数据
{ "email": "231@sda.com", "bio": "Cant send request" }
。在相关问题 更多 >
编程相关推荐