我有一个名为Task的模型,字段延迟是一个持续时间字段。
class Task:
delay = models.DurationField(timedelta(seconds=0))
和序列化器如下。
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('id', 'delay')
在使用序列化程序创建实例时,我会传递{delay: 30}
等期望传递秒数的数据。
按预期创建实例。但是在检索时,我得到了结果。
[
{
"delay": "00:00:00.000060",
},
{
"delay": "00:00:00.000050",
},
{
"delay": "00:00:00.000060",
}
]
我试图仅在整数格式中获得串行器中的延迟值。例如:
[
{
"delay": 60,
},
{
"delay": 50,
},
{
"delay": 60
}
]
我不愿意在写入或读取序列化程序中更改字段名称“delay”。我怎样才能达到要求?
答案 0 :(得分:1)
我猜这个整数被解释为微秒,你需要将秒作为字符串发送
{"delay": "60"}
如果要将秒作为整数发送(在json中),则需要创建自定义字段。最简单的方法是继承DurationField()
并根据您的需要调整行为。