0.0.33
fix osm parsing
This commit is contained in:
@@ -12,8 +12,8 @@ from django.conf import settings
|
|||||||
def MainPage(request):
|
def MainPage(request):
|
||||||
|
|
||||||
from ReferenceDataApp.funcs import parse_data, search_cities_in_db, search_airports_in_db
|
from ReferenceDataApp.funcs import parse_data, search_cities_in_db, search_airports_in_db
|
||||||
# res = search_cities_in_db('ms')
|
res = search_airports_in_db('ang')
|
||||||
# res = parse_data()
|
res = parse_data()
|
||||||
|
|
||||||
page = StaticPage.objects.get(url='main')
|
page = StaticPage.objects.get(url='main')
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ def search_cities_in_db(search_str):
|
|||||||
Q_obj = Q(name_en__icontains=search_str) | Q(name_ru__icontains=search_str) | \
|
Q_obj = Q(name_en__icontains=search_str) | Q(name_ru__icontains=search_str) | \
|
||||||
Q(country__name_en__icontains=search_str) | Q(country__name_ru__icontains=search_str)
|
Q(country__name_en__icontains=search_str) | Q(country__name_ru__icontains=search_str)
|
||||||
res_data = City.objects.filter(Q_obj).values('id', 'name', 'country__name')
|
res_data = City.objects.filter(Q_obj).values('id', 'name', 'country__name')
|
||||||
return res_data
|
return list(res_data)
|
||||||
|
|
||||||
def search_airports_in_db(search_str):
|
def search_airports_in_db(search_str):
|
||||||
Q_obj = Q(iata_code__icontains=search_str) | \
|
Q_obj = Q(iata_code__icontains=search_str) | \
|
||||||
@@ -18,7 +18,7 @@ def search_airports_in_db(search_str):
|
|||||||
Q(city__country__name_en__icontains=search_str) | \
|
Q(city__country__name_en__icontains=search_str) | \
|
||||||
Q(city__country__name_ru__icontains=search_str)
|
Q(city__country__name_ru__icontains=search_str)
|
||||||
res_data = Airport.objects.filter(Q_obj).values('id', 'name', 'iata_code', 'city__name', 'city__country__name')
|
res_data = Airport.objects.filter(Q_obj).values('id', 'name', 'iata_code', 'city__name', 'city__country__name')
|
||||||
return res_data
|
return list(res_data)
|
||||||
|
|
||||||
|
|
||||||
def get_country_area_id_by_countryName(class_obj, name):
|
def get_country_area_id_by_countryName(class_obj, name):
|
||||||
@@ -61,8 +61,8 @@ def create_airports_by_airportsList(airportsList, city=None):
|
|||||||
airport_kwargs = {
|
airport_kwargs = {
|
||||||
'city': city,
|
'city': city,
|
||||||
|
|
||||||
'name_ru': airport_Dict['name:ru'],
|
# 'name_ru': airport_Dict['name:ru'],
|
||||||
'name_en': airport_Dict['name:en'],
|
# 'name_en': airport_Dict['name:en'],
|
||||||
|
|
||||||
'geo_lat': str(airport_Dict['@lat']),
|
'geo_lat': str(airport_Dict['@lat']),
|
||||||
'geo_lon': str(airport_Dict['@lon']),
|
'geo_lon': str(airport_Dict['@lon']),
|
||||||
@@ -73,6 +73,12 @@ def create_airports_by_airportsList(airportsList, city=None):
|
|||||||
'icao_code': airport_Dict['icao'],
|
'icao_code': airport_Dict['icao'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if airport_Dict['name:ru']:
|
||||||
|
airport_kwargs.update({'name_ru': airport_Dict['name:ru']})
|
||||||
|
|
||||||
|
if airport_Dict['name:en']:
|
||||||
|
airport_kwargs.update({'name_en': airport_Dict['name:en']})
|
||||||
|
|
||||||
if 'area_id' in airport_Dict:
|
if 'area_id' in airport_Dict:
|
||||||
airport_kwargs.update({'area_id': airport_Dict['area_id']})
|
airport_kwargs.update({'area_id': airport_Dict['area_id']})
|
||||||
|
|
||||||
@@ -86,6 +92,7 @@ def create_airports_by_airportsList(airportsList, city=None):
|
|||||||
|
|
||||||
|
|
||||||
def parse_data():
|
def parse_data():
|
||||||
|
# Airport.objects.all().delete()
|
||||||
# Country.objects.all().delete()
|
# Country.objects.all().delete()
|
||||||
|
|
||||||
from BaseModels.OpenStreetMap.osm_api import osm_get_countries, osm_get_country_w_cities_n_airports
|
from BaseModels.OpenStreetMap.osm_api import osm_get_countries, osm_get_country_w_cities_n_airports
|
||||||
@@ -132,8 +139,8 @@ def parse_data():
|
|||||||
|
|
||||||
if not country:
|
if not country:
|
||||||
country_kwargs = {
|
country_kwargs = {
|
||||||
'name_ru': country_Dict['name:ru'],
|
# 'name_ru': country_Dict['name:ru'],
|
||||||
'name_en': country_Dict['name:en'],
|
# 'name_en': country_Dict['name:en'],
|
||||||
'international_name': country_Dict['int_name'],
|
'international_name': country_Dict['int_name'],
|
||||||
'official_name': country_Dict['official_name'],
|
'official_name': country_Dict['official_name'],
|
||||||
|
|
||||||
@@ -146,6 +153,13 @@ def parse_data():
|
|||||||
'geo_lat': str(country_Dict['@lat']),
|
'geo_lat': str(country_Dict['@lat']),
|
||||||
'geo_lon': str(country_Dict['@lon']),
|
'geo_lon': str(country_Dict['@lon']),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if country_Dict['name:ru']:
|
||||||
|
country_kwargs.update({'name_ru': country_Dict['name:ru']})
|
||||||
|
|
||||||
|
if country_Dict['name:en']:
|
||||||
|
country_kwargs.update({'name_en': country_Dict['name:en']})
|
||||||
|
|
||||||
if 'area_id' in country_Dict:
|
if 'area_id' in country_Dict:
|
||||||
country_kwargs.update({'area_id': country_Dict['area_id']})
|
country_kwargs.update({'area_id': country_Dict['area_id']})
|
||||||
|
|
||||||
@@ -155,12 +169,14 @@ def parse_data():
|
|||||||
for city_Dict in country_Dict['cities']:
|
for city_Dict in country_Dict['cities']:
|
||||||
|
|
||||||
city = None
|
city = None
|
||||||
|
|
||||||
|
kwargs = {}
|
||||||
|
if city_Dict['name:en']:
|
||||||
|
kwargs.update({'name_en': city_Dict['name:en']})
|
||||||
|
elif city_Dict['name:ru']:
|
||||||
|
kwargs.update({'name_ru': city_Dict['name:ru']})
|
||||||
|
|
||||||
try:
|
try:
|
||||||
kwargs = {}
|
|
||||||
if country_Dict['name:en']:
|
|
||||||
kwargs.update({'name_en': country_Dict['name:en']})
|
|
||||||
elif country_Dict['name:ru']:
|
|
||||||
kwargs.update({'name_ru': country_Dict['name:ru']})
|
|
||||||
city = City.objects.get(**kwargs)
|
city = City.objects.get(**kwargs)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'error = {str(e)}')
|
print(f'error = {str(e)}')
|
||||||
@@ -170,13 +186,15 @@ def parse_data():
|
|||||||
city_kwargs = {
|
city_kwargs = {
|
||||||
'country': country,
|
'country': country,
|
||||||
|
|
||||||
'name_ru': city_Dict['name:ru'],
|
# 'name_ru': city_Dict['name:ru'],
|
||||||
'name_en': city_Dict['name:en'],
|
# 'name_en': city_Dict['name:en'],
|
||||||
|
|
||||||
'geo_lat': str(city_Dict['@lat']),
|
'geo_lat': str(city_Dict['@lat']),
|
||||||
'geo_lon': str(city_Dict['@lon']),
|
'geo_lon': str(city_Dict['@lon']),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
city_kwargs.update(kwargs)
|
||||||
|
|
||||||
if 'area_id' in city_Dict:
|
if 'area_id' in city_Dict:
|
||||||
city_kwargs.update({'area_id': city_Dict['area_id']})
|
city_kwargs.update({'area_id': city_Dict['area_id']})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user