diff --git a/ReferenceDataApp/funcs.py b/ReferenceDataApp/funcs.py index 6e4a15c..be2f6f1 100644 --- a/ReferenceDataApp/funcs.py +++ b/ReferenceDataApp/funcs.py @@ -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: