def migrate_city(entry): """ Migration of a JSON-represented city. """ corresp_map = { 'wikiname': entry['fields']['wikiname'], 'slug': entry['fields']['slug'], 'name': entry['fields']['name'], 'rankings': [ float(entry['fields']['rating_factor_%d' % idx]) for idx in xrange(1, 4) ], 'timezone': u'UTC%s%d' % (u'' if entry['fields']['timezone'] < 0 else u'+', entry['fields']['timezone']), 'total_ranking': float(entry['fields']['total_rating']), 'coordinates': [ float(entry['fields']['latitude']), float(entry['fields']['longitude']) ], 'country': Country.find_one({ 'old_pk': entry['fields']['country'] })._id, } additional_corresp_map = { 'old_pk': entry['pk'], } city = City.find_one({'old_pk': entry['pk']}) if not city: city = City() city.set_lang("en") for k, v in corresp_map.iteritems(): setattr(city, k, v) for k, v in additional_corresp_map.iteritems(): city[k] = v city.save() return city
def migrate_city(entry): """ Migration of a JSON-represented city. """ corresp_map = { 'wikiname': entry['fields']['wikiname'], 'slug': entry['fields']['slug'], 'name': entry['fields']['name'], 'rankings': [float(entry['fields']['rating_factor_%d' % idx]) for idx in xrange(1, 4)], 'timezone': u'UTC%s%d' % ( u'' if entry['fields']['timezone'] < 0 else u'+', entry['fields']['timezone']), 'total_ranking': float(entry['fields']['total_rating']), 'coordinates': [float(entry['fields']['latitude']), float(entry['fields']['longitude'])], 'country': Country.find_one({ 'old_pk': entry['fields']['country']})._id, } additional_corresp_map = { 'old_pk': entry['pk'], } city = City.find_one({'old_pk': entry['pk']}) if not city: city = City() city.set_lang("en") for k, v in corresp_map.iteritems(): setattr(city, k, v) for k, v in additional_corresp_map.iteritems(): city[k] = v city.save() return city
from triplander.models import City city = City.find_one({"slug": "groningen"}) point = city.coordinates distance = 20 City.set_lang("en") for c in City.find_nearby("coordinates", point, distance): print "1", c.name for c in City.find_prefix("name", "gro"): print "2", c.name