post请求一般都是用来新增数据
在APIView中怎么去写呢?
直接上代码:
class BookView(APIView):
def post(self,request):
# print(request.data)
verify_data = BookSerialize(data=request.data)
if verify_data.is_valid():
book = verify_data.save()
return Response(verify_data.data)
else:
return Response(verify_data.errors)
serialize中:
class BookSerialize(serializers.Serializer):
title = serializers.CharField(max_length=32)
price = serializers.IntegerField()
publish = serializers.CharField()
def create(self, validated_data):
print(validated_data)
title = validated_data['title']
price = validated_data['price']
publish = validated_data['publish']
publish = Publish.objects.create(company=publish)
book = Book.objects.create(
title=title,
price=price,
publish=publish
)
return book
这里有个地方要特别注意:
在使用serializers.Serializer这种比较灵活的序列化类的时候
新增数据时需要我们手动去写create方法
同理,如果是更新数据,也需要手写update方法
否则在view中使用save()时会报错
接下来就可以欢快的去发起post请求新增数据啦