【发布时间】:2019-07-12 16:45:49
【问题描述】:
我正在 Django 中编写一个 API,为此我使用 django-rest-framework。我有一个简单的模型如下:
class PeopleCounter(models.Model):
version = models.CharField(max_length=10)
timestamp = models.DateTimeField(db_index=True)
sensor = models.CharField(max_length=10)
count = models.IntegerField()
我有一个序列化器如下:
class PeopleCounterSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = PeopleCounter
fields = [
'version',
'timestamp',
'sensor',
'count',
]
当我将以下数据发布到此端点时,效果很好:
{
"version": "v1",
"timestamp": "2019-04-01T20:00:00.312",
"sensor": "sensorA",
"count": 4
}
但不幸的是,我需要调整端点以使数据到达如下:
{
"version": "v1",
"timestamp": "2019-04-01T20:00:00.312",
"data": {
"sensor": "sensorA",
"count": 4
}
}
我认为我需要向序列化程序类添加一个创建方法。所以我尝试了,但是当我使用 "data" 对象发布 json 时,我收到一条消息,提示传感器字段和计数字段是必需的。
有人知道我可以在哪里规范化这些数据,以便我可以将其正确插入数据库吗?
另外,如果我也想通过同样的端点提供数据,我可以在哪里定义呢?
欢迎所有提示!
【问题讨论】:
标签: json django serialization django-rest-framework