使用序列化器更新数据时,filter返回的是一个QuestSet对象,要先使用first()或者使用get方法获取instance
hrt = HomeRightTopResource.objects.filter(pk=data[‘id’])
def put(self, requests):
data = requests.data
# 这样是错的,因为返回的是一个querySet对象
# hrt = HomeRightTopResource.objects.filter(pk=data['id'])
# 或者也可以这样
# hrt = HomeRightTopResource.objects.filter(pk=data['id']).first()
hrt = HomeRightTopResource.objects.get(pk=data['id'])
serializer = HomeRightTopResourceSerializer(data=data, instance=hrt)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
序列化器:
def update(self, instance, validated_data):
instance.image = validated_data['image']
instance.text = validated_data['text']
instance.url = validated_data['url']
instance.save()
return instance
因篇幅问题不能全部显示,请点此查看更多更全内容