Django Rest Framework 使用自定义数据类型序列化持续时间字段
Django Rest Framework Seralize duration filed with custom datatype
我有一个模型,它与 django DurationField()
class Elpased(models.Model):
total_duration = models.DurationField(
default=30
)
这是我的序列化程序,
class ElapsedSerializer(ModelSerializer):
class Meta:
model = Elapsed
fields = '__all__'
我正在以这种模式获取响应数据:
它需要 2 分钟 "total_duration": "00:02:00",
表示25秒"total_duration": "00:00:25",
但是我不喜欢这样,我想秒取数据,如果有"total_duration": "00:02:00",
应该是这样"total_duration": "120",
如果有"total_duration": "00:00:25",
,应该是这样的:"total_duration": "25",
任何人都可以帮助实现这个目标吗?
自定义字段return:
class ElapsedSerializer(ModelSerializer):
class Meta:
model = Elapsed
fields = '__all__'
total_duration = serializers.SerializerMethodField()
def get_total_duration(self, obj):
total_duration = obj.total_duration
h, m, s = total_duration.split(':')
return int(h) * 3600 + int(m) * 60 + int(s)
我有一个模型,它与 django DurationField()
class Elpased(models.Model):
total_duration = models.DurationField(
default=30
)
这是我的序列化程序,
class ElapsedSerializer(ModelSerializer):
class Meta:
model = Elapsed
fields = '__all__'
我正在以这种模式获取响应数据:
它需要 2 分钟 "total_duration": "00:02:00",
表示25秒"total_duration": "00:00:25",
但是我不喜欢这样,我想秒取数据,如果有"total_duration": "00:02:00",
应该是这样"total_duration": "120",
如果有"total_duration": "00:00:25",
,应该是这样的:"total_duration": "25",
任何人都可以帮助实现这个目标吗?
自定义字段return:
class ElapsedSerializer(ModelSerializer):
class Meta:
model = Elapsed
fields = '__all__'
total_duration = serializers.SerializerMethodField()
def get_total_duration(self, obj):
total_duration = obj.total_duration
h, m, s = total_duration.split(':')
return int(h) * 3600 + int(m) * 60 + int(s)