Dam*_*ndy 1 python django django-rest-framework
我正在尝试更新用户模型(使用 APIView 中的 Django Rest Framework 的 patch 方法),但我不断收到错误。
`NotImplementedError: update() must be implemented.`
Run Code Online (Sandbox Code Playgroud)
这是我的序列化器:
class UpdateSerializer(serializers.Serializer):
class Meta:
model = User
fields = ('email', 'first_name', 'last_name',
'phone')
Run Code Online (Sandbox Code Playgroud)
这是我的观点:
class UpdateUser(APIView):
permission_classes = [
permissions.IsAuthenticated,
]
def patch(self, request):
"""
`Update User`
"""
user = self.request.user
serializer = UpdateSerializer(user, data=request.data, partial=True)
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)
Run Code Online (Sandbox Code Playgroud)
我创建了一个自定义用户模型,用于注册用户的序列化器工作正常,但此更新序列化器给出了该错误
使用serializers.ModelSerializer而不是serializers.Serializer
class UpdateSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('email', 'first_name', 'last_name', 'phone')Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1675 次 |
| 最近记录: |