我正在使用PhoneGap应用程序和基于Django的后端的组合来记录研究项目的位置数据点。在
PhoneGap应用程序将捆绑多个数据点,并将它们推送到django rest framework API端点,例如:
[{
"speed": -1,
"time": 1487292133229.221,
"longitude": 172.123456,
"bearing": -1,
"location_type": "current",
"latitude": -43.123456,
"accuracy": 65,
"heading": -1,
"altitude": 3.585018873214722,
"altitudeAccuracy": 10
}, ...
]
然而,由于PhoneGap应用程序是如何管理位置的,因此许多点在推送的JSON中是重复的。在
为了尝试解决这个问题,我重写了ListSerializer来遍历传入的数据并将其与数据库中已有的数据进行比较,方法是根据时间戳和用户id(谁上传的)计算一个(未加密的)唯一哈希,然后查看是否已经存在具有相同哈希的内容。采用这种方法是因为实际位置数据在添加到数据库之前是加密的。在
^{pr2}$这种方法设法捕捉到大部分重复项,但不是全部。有没有人知道是什么原因导致了不重复的添加?我是否应该对数据模型的“hash”字段设置一个唯一的约束,然后静默地忽略导致IntegrityError的插入?在
感激不尽!在
因为您的json本身已被重复项损坏。我建议在后端(django)接收到json之后,首先要清理它。你可以试试这里给出的方法-https://stackoverflow.com/a/33955470/4815238
一旦JSON是干净的,那么就创建所需的对象。希望这有帮助。在
相关问题 更多 >
编程相关推荐