Python DRF将数据从API反序列化到django模型

Python DRF将数据从API反序列化到django模型,python,django-rest-framework,django-serializer,Python,Django Rest Framework,Django Serializer,我正在使用django rest框架(DRK)的序列化程序 我正在从一个外部API获取数据,我想将这些数据转换成一个内部模型(这里是句号) 问题是,外部api的字段格式如下所示: {"DateFrom": "2020-02-10T00:00:00"} 我想从字段重命名为“日期” 以下是我所尝试的: 序列化程序: class PeriodSerializer(serializers.ModelSerializer): date_from = serializers.DateTimeFie

我正在使用django rest框架(DRK)的序列化程序

我正在从一个外部API获取数据,我想将这些数据转换成一个内部模型(这里是句号)

问题是,外部api的字段格式如下所示:

{"DateFrom": "2020-02-10T00:00:00"}
我想从字段重命名为“日期”

以下是我所尝试的:

序列化程序:

class PeriodSerializer(serializers.ModelSerializer):
    date_from = serializers.DateTimeField(write_only=True, source='DateFrom')

    class Meta:
        model = Period
        fields = ('date_from',)
注意,我尝试了“
write\u only=True,source='DateFrom'

然后在我的代码中:

json = {"DateFrom": "2020-02-10T00:00:00"}

serializer = PeriodSerializer(data=json)
serializer.is_valid() # This is returning False

print(serializer.errors)  
然后输出是:

{'date_from': [ErrorDetail(string='This field is required.', code='required')]}

怎么处理?(以最好的方式(良好的实践))我认为你在这方面有些倒退。考虑到您的模型以及您在API中公开的内容,您希望执行以下操作:

class PeriodSerializer(serializers.ModelSerializer):
    DateFrom = serializers.DateTimeField(write_only=True, source='date_from')

source
指定模型上的数据源,而序列化程序字段的名称是该字段序列化时的名称。

我想您在这里有点倒退。考虑到您的模型以及您在API中公开的内容,您希望执行以下操作:

class PeriodSerializer(serializers.ModelSerializer):
    DateFrom = serializers.DateTimeField(write_only=True, source='date_from')
source
指定模型上的数据源,而序列化器字段的名称是序列化时字段的名称