我有DRF。我想与requests
库进行get调用,获取json,使用我的一个序列化程序解析它并保存到数据库。
是否可以将json数组传递给序列化程序并保存到db?
答案 0 :(得分:1)
如果需要,请求已经为您提供dict
,因此无需解析。只需调用.json()
并将其直接传递给序列化程序即可。
保存对象是一个单独的问题;您可以在序列化程序中执行此操作,也可以使用序列化程序中的验证数据在视图中手动执行此操作。
resp = requests.get('http://my-service')
if resp.status_code == 200:
ser = MySerializerClass(data=resp.json()) # the .json() parses to a dict
ser.is_valid(raise_exception=True)
# save using the serializer, if you've implemented there
ser.save()
# -or- do it manually
data = ser.validated_data
MyModel.objects.create(name=data['name', etc)
请注意,嵌套序列化程序是一个完全不同的主题,并且不容易实现。就个人而言,我会使用transactions
从validated_data手动创建对象(在方法中或在.save
中)