Django Rest框架-使用序列化程序通过请求库发送json

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

我有一个DRF设置,它接收json格式的数据并将其存储在django中。序列化程序如下

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_对象直接传递给序列化程序而不进行数据验证,则可以工作