def get_or_add_place(cls, hit):
place = cls.query.filter_by(osm_type=hit['osm_type'],
osm_id=hit['osm_id']).one_or_none()
if place and place.place_id != hit['place_id']:
place.update_from_nominatim(hit)
elif not place:
place = Place.query.get(hit['place_id'])
if place:
place.update_from_nominatim(hit)
else:
place = cls.from_nominatim(hit)
session.add(place)
session.commit()
return place
评论列表
文章目录