39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
from django.db.models import Q
|
|
|
|
from transfer.serializers.location import CountrySerializer, RegionSerializer
|
|
from transfer.models import Cities
|
|
from pprint import pprint
|
|
|
|
|
|
def transfer_countries():
|
|
queryset = Cities.objects.exclude(country_code_2__isnull=True).values_list("country_code_2", flat=True).distinct()
|
|
|
|
serialized_data = CountrySerializer(data=list(queryset.values()), many=True)
|
|
if serialized_data.is_valid():
|
|
serialized_data.save()
|
|
else:
|
|
pprint(f"Country serializer errors: {serialized_data.errors}")
|
|
|
|
|
|
def transfer_regions():
|
|
regions_without_subregion_queryset = Cities.objects.\
|
|
exclude(Q(subregion_code__isnull=False) | Q(region_code__isnull=True) | Q(country_code_2__isnull=True)).\
|
|
values('region_code', 'country_code_2', 'subregion_code').distinct()
|
|
|
|
serialized_without_subregion = RegionSerializer(data=list(regions_without_subregion_queryset.values()), many=True)
|
|
if serialized_without_subregion.is_valid():
|
|
serialized_without_subregion.save()
|
|
else:
|
|
pprint(f"Parent regions serializer errors: {serialized_without_subregion.errors}")
|
|
|
|
|
|
data_types = {
|
|
"dictionaries": [
|
|
transfer_countries,
|
|
|
|
],
|
|
"tmp": [
|
|
transfer_regions
|
|
]
|
|
}
|