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(Q(country_code_2__isnull=True) | Q(country_code_2=""))\ .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) | Q(region_code="") | Q(country_code_2="")).\ 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, transfer_regions, ] }