【发布时间】:2018-01-13 09:57:47
【问题描述】:
我很困惑在 Django Rest Framework 中使用扩展用户模型创建 Patch 方法。希望大家帮忙。
我的扩展用户模型:
class Profile(models.Model):
user = models.OneToOneField(User, unique=True)
bio = models.CharField
我的序列化器:
class UserEditSerializer(ModelSerializer):
bio = serializers.CharField(source='profile.bio')
class Meta:
model = User
fields = [
'username',
'email',
'first_name',
'last_name',
'bio'
]
我的观点集:
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)
使用 POSTMAN 发送的数据 (json)
{ "email": "231@sda.com", "profile": {"bio": "无法发送请求" } }
错误:
Profile.Bio cant response true data
照片:
【问题讨论】:
标签: python django django-rest-framework