【发布时间】:2020-09-28 22:38:28
【问题描述】:
我首先通过一个简单的 for 循环尝试了一个基本的实现,如下所示。它可以工作,但由于有 10k 条记录,需要的时间太长。
panoramas = Panorama.objects.all()
for panorama in panoramas:
panorama.geo_location = Point([panorama.longitude, panorama.latitude])
panorama.save()
基于Django的更新方法,然后我尝试了这样的事情:
geo_location = Panorama.objects.all().update(
geo_location=fromstr(f'POINT({longitude} {latitude}', srid=4326)
)
这不起作用,因为我试图让 Django 为每条记录挑选纬度/经度并根据这两个字段更新 geo_location 但 django 不知道经度或纬度是什么。
有没有一种方法可以使用 update() 来实现?
【问题讨论】:
标签: django python-3.x postgresql postgis geodjango