Python DRF将数据从API反序列化到django模型
我正在使用django rest框架(DRK)的序列化程序 我正在从一个外部API获取数据,我想将这些数据转换成一个内部模型(这里是句号) 问题是,外部api的字段格式如下所示: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
{"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
指定模型上的数据源,而序列化器字段的名称是序列化时字段的名称