Django Rest框架-使用序列化程序通过请求库发送json
我有一个DRF设置,它接收json格式的数据并将其存储在django中。序列化程序如下Django Rest框架-使用序列化程序通过请求库发送json,json,django,django-rest-framework,python-requests,Json,Django,Django Rest Framework,Python Requests,我有一个DRF设置,它接收json格式的数据并将其存储在django中。序列化程序如下 class ReservationSerializer(serializers.ModelSerializer): room = RoomSerializer() reserved_days = DaySerializer(many=True) additional_services = AdditionalServicesSerializer(many=True) cla
class ReservationSerializer(serializers.ModelSerializer):
room = RoomSerializer()
reserved_days = DaySerializer(many=True)
additional_services = AdditionalServicesSerializer(many=True)
class Meta:
model = Reservation
fields = [
'start',
'end',
'check_in_time',
'check_out_time',
'reserved_days',
'additional_services',
'room',
'has_refund',
'payed',
'guest_name',
'reservation_number',
]
我是否可以使用此序列化程序准备json模型,然后将此json与请求
库一起发送?如果您认为需要,这是可行的。尽管JSON编码是在Response对象中完成的,它是一个完整的HTTPResponse子类,因此您需要对自己的数据进行编码:
import json
import requests
my_objects = Reservation.objects.all()
serializer = ReservationSerializer(data=my_objects, many=True)
if serializer.is_valid():
# now you do your encoding:
encoded_data = json.dumps(serializer.data)
response = requests.post(your_url,
headers={'Content-Type': 'application/json'},
data=encoded_data)
不使用传递和验证数据。但是,如果将my_对象直接传递给序列化程序而不进行数据验证,则可以工作