Merge remote-tracking branch 'origin/main'

This commit is contained in:
2023-08-11 13:19:43 +03:00
2 changed files with 29 additions and 20 deletions

View File

@@ -19,6 +19,7 @@ class Admin_City(Admin_Trans_BaseModel):
'enable', 'area_id', 'parsing_finished_DT',
'order', 'modifiedDT', 'createDT']
search_fields = ['id', 'name_en', 'name_ru', 'country__name']
list_filter = ['country']
admin.site.register(City, Admin_City)
class Admin_Airport(Admin_Trans_BaseModel):
@@ -29,4 +30,5 @@ class Admin_Airport(Admin_Trans_BaseModel):
'enable', 'area_id', 'parsing_finished_DT',
'order', 'modifiedDT', 'createDT']
search_fields = ['id', 'name_en', 'name_ru', 'city__name', 'city__country__name', 'iata_code', 'icao_code', 'international_name']
list_filter = ['city__country']
admin.site.register(Airport, Admin_Airport)

View File

@@ -178,8 +178,6 @@ def parse_data():
kwargs = {}
if city_Dict['name:en']:
kwargs.update({'name_en': city_Dict['name:en']})
if city_Dict['name:ru']:
kwargs.update({'name_ru': city_Dict['name:ru']})
if country:
kwargs.update({'country': country})
@@ -189,27 +187,36 @@ def parse_data():
except City.DoesNotExist:
print(f' - {city_Dict["name:en"]} не найдена в БД > добавляем')
except Exception as e:
print(f'error = {str(e)}')
cities = City.objects.filter(**kwargs)
if cities:
city = cities[0]
cities.exclude(id=city.id).delete()
else:
print(f'error = {str(e)}')
# собираем данные
city_kwargs = {
'country': country,
# 'name_ru': city_Dict['name:ru'],
# 'name_en': city_Dict['name:en'],
'geo_lat': str(city_Dict['@lat']),
'geo_lon': str(city_Dict['@lon']),
}
if city_Dict['name:ru']:
kwargs.update({'name_ru': city_Dict['name:ru']})
city_kwargs.update(kwargs)
if 'area_id' in city_Dict:
city_kwargs.update({'area_id': city_Dict['area_id']})
if not city:
city_kwargs = {
'country': country,
# 'name_ru': city_Dict['name:ru'],
# 'name_en': city_Dict['name:en'],
'geo_lat': str(city_Dict['@lat']),
'geo_lon': str(city_Dict['@lon']),
}
city_kwargs.update(kwargs)
if 'area_id' in city_Dict:
city_kwargs.update({'area_id': city_Dict['area_id']})
city = City.objects.create(**city_kwargs)
else:
City.objects.filter(id=city.id).update(**city_kwargs)
if 'airports' in city_Dict: