mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-31 02:39:38 +02:00
1113 lines
53 KiB
Python
1113 lines
53 KiB
Python
import os
|
||
from django.core.management.base import BaseCommand
|
||
from django.contrib.auth import get_user_model
|
||
import requests
|
||
from worldtravel.models import Country, Region
|
||
from django.db import transaction
|
||
from django.contrib.gis.geos import GEOSGeometry, Polygon, MultiPolygon
|
||
from django.contrib.gis.geos.error import GEOSException
|
||
import json
|
||
|
||
from django.conf import settings
|
||
|
||
media_root = settings.MEDIA_ROOT
|
||
|
||
|
||
def setGeometry(region_code):
|
||
# Assuming the file name is the country code (e.g., 'AU.json' for Australia)
|
||
country_code = region_code.split('-')[0]
|
||
json_file = os.path.join('static/data', f'{country_code.lower()}.json')
|
||
|
||
if not os.path.exists(json_file):
|
||
print(f'File {country_code}.json does not exist (it probably hasn''t been added, contributors are welcome!)')
|
||
return None
|
||
|
||
try:
|
||
with open(json_file, 'r') as f:
|
||
geojson_data = json.load(f)
|
||
except json.JSONDecodeError as e:
|
||
print(f"Invalid JSON in file for {country_code}: {e}")
|
||
return None
|
||
|
||
if 'type' not in geojson_data or geojson_data['type'] != 'FeatureCollection':
|
||
print(f"Invalid GeoJSON structure for {country_code}: missing or incorrect 'type'")
|
||
return None
|
||
|
||
if 'features' not in geojson_data or not geojson_data['features']:
|
||
print(f"Invalid GeoJSON structure for {country_code}: missing or empty 'features'")
|
||
return None
|
||
|
||
for feature in geojson_data['features']:
|
||
try:
|
||
properties = feature.get('properties', {})
|
||
isocode = properties.get('ISOCODE')
|
||
|
||
if isocode == region_code:
|
||
geometry = feature['geometry']
|
||
geos_geom = GEOSGeometry(json.dumps(geometry))
|
||
|
||
if isinstance(geos_geom, Polygon):
|
||
Region.objects.filter(id=region_code).update(geometry=MultiPolygon([geos_geom]))
|
||
print(f"Updated geometry for region {region_code}")
|
||
return MultiPolygon([geos_geom])
|
||
elif isinstance(geos_geom, MultiPolygon):
|
||
Region.objects.filter(id=region_code).update(geometry=geos_geom)
|
||
print(f"Updated geometry for region {region_code}")
|
||
return geos_geom
|
||
else:
|
||
print(f"Unexpected geometry type for region {region_code}: {type(geos_geom)}")
|
||
return None
|
||
|
||
except (KeyError, ValueError, GEOSException) as e:
|
||
print(f"Error processing region {region_code}: {e}")
|
||
|
||
print(f"No matching region found for {region_code}")
|
||
return None
|
||
|
||
def saveCountryFlag(country_code):
|
||
flags_dir = os.path.join(media_root, 'flags')
|
||
|
||
# Check if the flags directory exists, if not, create it
|
||
if not os.path.exists(flags_dir):
|
||
os.makedirs(flags_dir)
|
||
|
||
# Check if the flag already exists in the media folder
|
||
flag_path = os.path.join(flags_dir, f'{country_code}.png')
|
||
if os.path.exists(flag_path):
|
||
print(f'Flag for {country_code} already exists')
|
||
return
|
||
|
||
res = requests.get(f'https://flagcdn.com/h240/{country_code}.png')
|
||
if res.status_code == 200:
|
||
with open(flag_path, 'wb') as f:
|
||
f.write(res.content)
|
||
print(f'Flag for {country_code} downloaded')
|
||
else:
|
||
print(f'Error downloading flag for {country_code}')
|
||
|
||
class Command(BaseCommand):
|
||
help = 'Imports the world travel data'
|
||
|
||
def add_arguments(self, parser):
|
||
parser.add_argument(
|
||
'-f', '--force',
|
||
action='store_true',
|
||
help='Force import even if data already exists'
|
||
)
|
||
|
||
def handle(self, *args, **options):
|
||
force = options['force']
|
||
|
||
countries = [
|
||
('Afghanistan', 'af', 'AS'),
|
||
('Åland Islands', 'ax', 'EU'),
|
||
('Albania', 'al', 'EU'),
|
||
('Algeria', 'dz', 'AF'),
|
||
('American Samoa', 'as', 'OC'),
|
||
('Andorra', 'ad', 'EU'),
|
||
('Angola', 'ao', 'AF'),
|
||
('Anguilla', 'ai', 'NA'),
|
||
('Antarctica', 'aq', 'AN'),
|
||
('Antigua and Barbuda', 'ag', 'NA'),
|
||
('Argentina', 'ar', 'SA'),
|
||
('Armenia', 'am', 'AS'),
|
||
('Aruba', 'aw', 'NA'),
|
||
('Australia', 'au', 'OC'),
|
||
('Austria', 'at', 'EU'),
|
||
# ('Azerbaijan', 'az', 'AS'),
|
||
# ('Bahamas', 'bs', 'NA'),
|
||
# ('Bahrain', 'bh', 'AS'),
|
||
# ('Bangladesh', 'bd', 'AS'),
|
||
# ('Barbados', 'bb', 'NA'),
|
||
# ('Belarus', 'by', 'EU'),
|
||
# ('Belgium', 'be', 'EU'),
|
||
# ('Belize', 'bz', 'NA'),
|
||
# ('Benin', 'bj', 'AF'),
|
||
# ('Bermuda', 'bm', 'NA'),
|
||
# ('Bhutan', 'bt', 'AS'),
|
||
# ('Bolivia', 'bo', 'SA'),
|
||
# ('Bonaire, Sint Eustatius and Saba', 'bq', 'NA'),
|
||
# ('Bosnia and Herzegovina', 'ba', 'EU'),
|
||
# ('Botswana', 'bw', 'AF'),
|
||
# ('Bouvet Island', 'bv', 'AN'),
|
||
('Brazil', 'br', 'SA'),
|
||
# ('British Indian Ocean Territory', 'io', 'AS'),
|
||
# ('Brunei Darussalam', 'bn', 'AS'),
|
||
# ('Bulgaria', 'bg', 'EU'),
|
||
# ('Burkina Faso', 'bf', 'AF'),
|
||
# ('Burundi', 'bi', 'AF'),
|
||
# ('Cabo Verde', 'cv', 'AF'),
|
||
# ('Cambodia', 'kh', 'AS'),
|
||
# ('Cameroon', 'cm', 'AF'),
|
||
('Canada', 'ca', 'NA'),
|
||
# ('Cayman Islands', 'ky', 'NA'),
|
||
# ('Central African Republic', 'cf', 'AF'),
|
||
# ('Chad', 'td', 'AF'),
|
||
# ('Chile', 'cl', 'SA'),
|
||
('China', 'cn', 'AS'),
|
||
# ('Christmas Island', 'cx', 'AS'),
|
||
# ('Cocos (Keeling) Islands', 'cc', 'AS'),
|
||
# ('Colombia', 'co', 'SA'),
|
||
# ('Comoros', 'km', 'AF'),
|
||
# ('Congo', 'cg', 'AF'),
|
||
# ('Congo, Democratic Republic of the', 'cd', 'AF'),
|
||
# ('Cook Islands', 'ck', 'OC'),
|
||
# ('Costa Rica', 'cr', 'NA'),
|
||
# ('Croatia', 'hr', 'EU'),
|
||
# ('Cuba', 'cu', 'NA'),
|
||
# ('Curaçao', 'cw', 'NA'),
|
||
# ('Cyprus', 'cy', 'EU'),
|
||
('Czechia', 'cz', 'EU'),
|
||
# ('Côte d\'Ivoire', 'ci', 'AF'),
|
||
# ('Denmark', 'dk', 'EU'),
|
||
# ('Djibouti', 'dj', 'AF'),
|
||
# ('Dominica', 'dm', 'NA'),
|
||
# ('Dominican Republic', 'do', 'NA'),
|
||
# ('Ecuador', 'ec', 'SA'),
|
||
('Egypt', 'eg', 'AF'),
|
||
# ('El Salvador', 'sv', 'NA'),
|
||
# ('Equatorial Guinea', 'gq', 'AF'),
|
||
# ('Eritrea', 'er', 'AF'),
|
||
# ('Estonia', 'ee', 'EU'),
|
||
# ('Eswatini', 'sz', 'AF'),
|
||
# ('Ethiopia', 'et', 'AF'),
|
||
# ('Falkland Islands (Malvinas)', 'fk', 'SA'),
|
||
# ('Faroe Islands', 'fo', 'EU'),
|
||
# ('Fiji', 'fj', 'OC'),
|
||
# ('Finland', 'fi', 'EU'),
|
||
('France', 'fr', 'EU'),
|
||
# ('French Guiana', 'gf', 'SA'),
|
||
# ('French Polynesia', 'pf', 'OC'),
|
||
# ('French Southern Territories', 'tf', 'AN'),
|
||
# ('Gabon', 'ga', 'AF'),
|
||
# ('Georgia', 'ge', 'AS'),
|
||
# ('Gambia', 'gm', 'AF'),
|
||
('Germany', 'de', 'EU'),
|
||
# ('Ghana', 'gh', 'AF'),
|
||
# ('Gibraltar', 'gi', 'EU'),
|
||
# ('Greece', 'gr', 'EU'),
|
||
# ('Greenland', 'gl', 'NA'),
|
||
# ('Grenada', 'gd', 'NA'),
|
||
# ('Guadeloupe', 'gp', 'NA'),
|
||
# ('Guam', 'gu', 'OC'),
|
||
# ('Guatemala', 'gt', 'NA'),
|
||
# ('Guernsey', 'gg', 'EU'),
|
||
# ('Guinea', 'gn', 'AF'),
|
||
# ('Guinea-Bissau', 'gw', 'AF'),
|
||
# ('Guyana', 'gy', 'SA'),
|
||
# ('Haiti', 'ht', 'NA'),
|
||
# ('Heard Island and McDonald Islands', 'hm', 'AN'),
|
||
# ('Holy See', 'va', 'EU'),
|
||
# ('Honduras', 'hn', 'NA'),
|
||
# ('Hong Kong', 'hk', 'AS'),
|
||
# ('Hungary', 'hu', 'EU'),
|
||
('Iceland', 'is', 'EU'),
|
||
('India', 'in', 'AS'),
|
||
# ('Indonesia', 'id', 'AS'),
|
||
# ('Iran (Islamic Republic of)', 'ir', 'AS'),
|
||
# ('Iraq', 'iq', 'AS'),
|
||
('Ireland', 'ie', 'EU'),
|
||
# ('Isle of Man', 'im', 'EU'),
|
||
# ('Israel', 'il', 'AS'),
|
||
('Italy', 'it', 'EU'),
|
||
# ('Jamaica', 'jm', 'NA'),
|
||
('Japan', 'jp', 'AS'),
|
||
# ('Jersey', 'je', 'EU'),
|
||
# ('Jordan', 'jo', 'AS'),
|
||
# ('Kazakhstan', 'kz', 'AS'),
|
||
# ('Kenya', 'ke', 'AF'),
|
||
# ('Kiribati', 'ki', 'OC'),
|
||
# ('Korea (Democratic Peoples Republic of)', 'kp', 'AS'),
|
||
# ('Korea (Republic of)', 'kr', 'AS'),
|
||
# ('Kuwait', 'kw', 'AS'),
|
||
# ('Kyrgyzstan', 'kg', 'AS'),
|
||
# ('Lao Peoples Democratic Republic', 'la', 'AS'),
|
||
# ('Latvia', 'lv', 'EU'),
|
||
# ('Lebanon', 'lb', 'AS'),
|
||
# ('Lesotho', 'ls', 'AF'),
|
||
# ('Liberia', 'lr', 'AF'),
|
||
# ('Libya', 'ly', 'AF'),
|
||
('Liechtenstein', 'li', 'EU'),
|
||
# ('Lithuania', 'lt', 'EU'),
|
||
# ('Luxembourg', 'lu', 'EU'),
|
||
# ('Macao', 'mo', 'AS'),
|
||
# ('Madagascar', 'mg', 'AF'),
|
||
# ('Malawi', 'mw', 'AF'),
|
||
# ('Malaysia', 'my', 'AS'),
|
||
# ('Maldives', 'mv', 'AS'),
|
||
# ('Mali', 'ml', 'AF'),
|
||
# ('Malta', 'mt', 'EU'),
|
||
# ('Marshall Islands', 'mh', 'OC'),
|
||
# ('Martinique', 'mq', 'NA'),
|
||
# ('Mauritania', 'mr', 'AF'),
|
||
# ('Mauritius', 'mu', 'AF'),
|
||
# ('Mayotte', 'yt', 'AF'),
|
||
('Mexico', 'mx', 'NA'),
|
||
# ('Micronesia (Federated States of)', 'fm', 'OC'),
|
||
# ('Moldova (Republic of)', 'md', 'EU'),
|
||
# ('Monaco', 'mc', 'EU'),
|
||
# ('Mongolia', 'mn', 'AS'),
|
||
# ('Montenegro', 'me', 'EU'),
|
||
# ('Montserrat', 'ms', 'NA'),
|
||
# ('Morocco', 'ma', 'AF'),
|
||
# ('Mozambique', 'mz', 'AF'),
|
||
# ('Myanmar', 'mm', 'AS'),
|
||
# ('Namibia', 'na', 'AF'),
|
||
# ('Nauru', 'nr', 'OC'),
|
||
# ('Nepal', 'np', 'AS'),
|
||
# ('Netherlands', 'nl', 'EU'),
|
||
# ('New Caledonia', 'nc', 'OC'),
|
||
('New Zealand', 'nz', 'OC'),
|
||
# ('Nicaragua', 'ni', 'NA'),
|
||
# ('Niger', 'ne', 'AF'),
|
||
# ('Nigeria', 'ng', 'AF'),
|
||
# ('Niue', 'nu', 'OC'),
|
||
# ('Norfolk Island', 'nf', 'OC'),
|
||
# ('North Macedonia', 'mk', 'EU'),
|
||
# ('Northern Mariana Islands', 'mp', 'OC'),
|
||
# ('Norway', 'no', 'EU'),
|
||
# ('Oman', 'om', 'AS'),
|
||
# ('Pakistan', 'pk', 'AS'),
|
||
# ('Palau', 'pw', 'OC'),
|
||
# ('Palestine, State of', 'ps', 'AS'),
|
||
# ('Panama', 'pa', 'NA'),
|
||
# ('Papua New Guinea', 'pg', 'OC'),
|
||
# ('Paraguay', 'py', 'SA'),
|
||
# ('Peru', 'pe', 'SA'),
|
||
# ('Philippines', 'ph', 'AS'),
|
||
# ('Pitcairn', 'pn', 'OC'),
|
||
# ('Poland', 'pl', 'EU'),
|
||
# ('Portugal', 'pt', 'EU'),
|
||
# ('Puerto Rico', 'pr', 'NA'),
|
||
# ('Qatar', 'qa', 'AS'),
|
||
# ('Réunion', 're', 'AF'),
|
||
# ('Romania', 'ro', 'EU'),
|
||
# ('Russian Federation', 'ru', 'EU'),
|
||
# ('Rwanda', 'rw', 'AF'),
|
||
# ('Saint Barthélemy', 'bl', 'NA'),
|
||
# ('Saint Helena, Ascension and Tristan da Cunha', 'sh', 'AF'),
|
||
# ('Saint Kitts and Nevis', 'kn', 'NA'),
|
||
# ('Saint Lucia', 'lc', 'NA'),
|
||
# ('Saint Martin (French part)', 'mf', 'NA'),
|
||
# ('Saint Pierre and Miquelon', 'pm', 'NA'),
|
||
# ('Saint Vincent and the Grenadines', 'vc', 'NA'),
|
||
# ('Samoa', 'ws', 'OC'),
|
||
# ('San Marino', 'sm', 'EU'),
|
||
# ('Sao Tome and Principe', 'st', 'AF'),
|
||
# ('Saudi Arabia', 'sa', 'AS'),
|
||
# ('Senegal', 'sn', 'AF'),
|
||
# ('Serbia', 'rs', 'EU'),
|
||
# ('Seychelles', 'sc', 'AF'),
|
||
# ('Sierra Leone', 'sl', 'AF'),
|
||
# ('Singapore', 'sg', 'AS'),
|
||
# ('Sint Maarten (Dutch part)', 'sx', 'NA'),
|
||
('Slovakia', 'sk', 'EU'),
|
||
# ('Slovenia', 'si', 'EU'),
|
||
# ('Solomon Islands', 'sb', 'OC'),
|
||
# ('Somalia', 'so', 'AF'),
|
||
('South Africa', 'za', 'AF'),
|
||
# ('South Georgia and the South Sandwich Islands', 'gs', 'AN'),
|
||
# ('South Sudan', 'ss', 'AF'),
|
||
('Spain', 'es', 'EU'),
|
||
# ('Sri Lanka', 'lk', 'AS'),
|
||
# ('Sudan', 'sd', 'AF'),
|
||
# ('Suriname', 'sr', 'SA'),
|
||
# ('Svalbard and Jan Mayen', 'sj', 'EU'),
|
||
('Sweden', 'se', 'EU'),
|
||
('Switzerland', 'ch', 'EU'),
|
||
# ('Syrian Arab Republic', 'sy', 'AS'),
|
||
# ('Taiwan, Province of China', 'tw', 'AS'),
|
||
# ('Tajikistan', 'tj', 'AS'),
|
||
# ('Tanzania, United Republic of', 'tz', 'AF'),
|
||
# ('Thailand', 'th', 'AS'),
|
||
# ('Timor-Leste', 'tl', 'AS'),
|
||
# ('Togo', 'tg', 'AF'),
|
||
# ('Tokelau', 'tk', 'OC'),
|
||
# ('Tonga', 'to', 'OC'),
|
||
# ('Trinidad and Tobago', 'tt', 'NA'),
|
||
# ('Tunisia', 'tn', 'AF'),
|
||
# ('Turkey', 'tr', 'AS'),
|
||
# ('Turkmenistan', 'tm', 'AS'),
|
||
# ('Turks and Caicos Islands', 'tc', 'NA'),
|
||
# ('Tuvalu', 'tv', 'OC'),
|
||
# ('Uganda', 'ug', 'AF'),
|
||
# ('Ukraine', 'ua', 'EU'),
|
||
# ('United Arab Emirates', 'ae', 'AS'),
|
||
('United Kingdom', 'gb', 'EU'),
|
||
('United States of America', 'us', 'NA'),
|
||
# ('United States Minor Outlying Islands', 'um', 'OC'),
|
||
# ('Uruguay', 'uy', 'SA'),
|
||
# ('Uzbekistan', 'uz', 'AS'),
|
||
# ('Vanuatu', 'vu', 'OC'),
|
||
# ('Venezuela (Bolivarian Republic of)', 've', 'SA'),
|
||
# ('Viet Nam', 'vn', 'AS'),
|
||
# ('British Virgin Islands', 'vg', 'NA'),
|
||
# ('United States Virgin Islands', 'vi', 'NA'),
|
||
# ('Western Sahara', 'eh', 'AF'),
|
||
# ('Wallis and Futuna', 'wf', 'OC'),
|
||
# ('Yemen', 'ye', 'AS'),
|
||
# ('Zambia', 'zm', 'AF'),
|
||
# ('Zimbabwe', 'zw', 'AF'),
|
||
]
|
||
|
||
regions = [
|
||
# Afghanistan (AF)
|
||
('AF-BAL', 'Balkh', 'Balkh', 'af'),
|
||
('AF-BAM', 'Bamyan', 'Bamyan', 'af'),
|
||
('AF-BDG', 'Badghis', 'Badghis', 'af'),
|
||
('AF-BDS', 'Badakhshan', 'Badakhshan', 'af'),
|
||
('AF-BGL', 'Baghlan', 'Baghlan', 'af'),
|
||
('AF-DAY', 'Daykundi', 'Daykundi', 'af'),
|
||
('AF-FRA', 'Farah', 'Farah', 'af'),
|
||
('AF-FYB', 'Faryab', 'Faryab', 'af'),
|
||
('AF-GHA', 'Ghazni', 'Ghazni', 'af'),
|
||
('AF-GHO', 'Ghor', 'Ghor', 'af'),
|
||
('AF-HEL', 'Helmand', 'Helmand', 'af'),
|
||
('AF-HER', 'Herat', 'Herat', 'af'),
|
||
('AF-JOW', 'Jowzjan', 'Jowzjan', 'af'),
|
||
('AF-KAB', 'Kabul', 'Kabul', 'af'),
|
||
('AF-KAN', 'Kandahar', 'Kandahar', 'af'),
|
||
('AF-KAP', 'Kapisa', 'Kapisa', 'af'),
|
||
('AF-KDZ', 'Kunduz', 'Kunduz', 'af'),
|
||
('AF-KHO', 'Khost', 'Khost', 'af'),
|
||
('AF-KNR', 'Kunar', 'Kunar', 'af'),
|
||
('AF-LAG', 'Laghman', 'Laghman', 'af'),
|
||
('AF-LOG', 'Logar', 'Logar', 'af'),
|
||
('AF-NAN', 'Nangarhar', 'Nangarhar', 'af'),
|
||
('AF-NIM', 'Nimroz', 'Nimroz', 'af'),
|
||
('AF-NUR', 'Nuristan', 'Nuristan', 'af'),
|
||
('AF-PAN', 'Panjshir', 'Panjshir', 'af'),
|
||
('AF-PAR', 'Parwan', 'Parwan', 'af'),
|
||
('AF-PIA', 'Paktia', 'Paktia', 'af'),
|
||
('AF-PKA', 'Paktika', 'Paktika', 'af'),
|
||
('AF-SAM', 'Samangan', 'Samangan', 'af'),
|
||
('AF-SAR', 'Sar-e Pol', 'Sar-e Pol', 'af'),
|
||
('AF-TAK', 'Takhar', 'Takhar', 'af'),
|
||
('AF-URU', 'Urozgan', 'Urozgan', 'af'),
|
||
('AF-WAR', 'Wardak', 'Wardak', 'af'),
|
||
('AF-ZAB', 'Zabul', 'Zabul', 'af'),
|
||
|
||
# Åland Islands (AX)
|
||
('AX', 'Åland Islands', 'Åland Islands', 'ax'),
|
||
|
||
# Albania (AL)
|
||
('AL-01', 'Berat', 'Berat', 'al'),
|
||
('AL-02', 'Dibër', 'Dibër', 'al'),
|
||
('AL-03', 'Durrës', 'Durrës', 'al'),
|
||
('AL-04', 'Elbasan', 'Elbasan', 'al'),
|
||
('AL-05', 'Fier', 'Fier', 'al'),
|
||
('AL-06', 'Gjirokastër', 'Gjirokastër', 'al'),
|
||
('AL-07', 'Korçë', 'Korçë', 'al'),
|
||
('AL-08', 'Kukës', 'Kukës', 'al'),
|
||
('AL-09', 'Lezhë', 'Lezhë', 'al'),
|
||
('AL-10', 'Shkodër', 'Shkodër', 'al'),
|
||
('AL-11', 'Tiranë', 'Tiranë', 'al'),
|
||
('AL-12', 'Vlorë', 'Vlorë', 'al'),
|
||
|
||
# Algeria (DZ)
|
||
('DZ-01', 'Adrar', 'Adrar', 'dz'),
|
||
('DZ-02', 'Chlef', 'Chlef', 'dz'),
|
||
('DZ-03', 'Laghouat', 'Laghouat', 'dz'),
|
||
('DZ-04', 'Oum El Bouaghi', 'Oum El Bouaghi', 'dz'),
|
||
('DZ-05', 'Batna', 'Batna', 'dz'),
|
||
('DZ-06', 'Béjaïa', 'Béjaïa', 'dz'),
|
||
('DZ-07', 'Biskra', 'Biskra', 'dz'),
|
||
('DZ-08', 'Béchar', 'Béchar', 'dz'),
|
||
('DZ-09', 'Blida', 'Blida', 'dz'),
|
||
('DZ-10', 'Bouira', 'Bouira', 'dz'),
|
||
('DZ-11', 'Tamanrasset', 'Tamanrasset', 'dz'),
|
||
('DZ-12', 'Tébessa', 'Tébessa', 'dz'),
|
||
('DZ-13', 'Tlemcen', 'Tlemcen', 'dz'),
|
||
('DZ-14', 'Tiaret', 'Tiaret', 'dz'),
|
||
('DZ-15', 'Tizi Ouzou', 'Tizi Ouzou', 'dz'),
|
||
('DZ-16', 'Alger', 'Alger', 'dz'),
|
||
('DZ-17', 'Djelfa', 'Djelfa', 'dz'),
|
||
('DZ-18', 'Jijel', 'Jijel', 'dz'),
|
||
('DZ-19', 'Sétif', 'Sétif', 'dz'),
|
||
('DZ-20', 'Saïda', 'Saïda', 'dz'),
|
||
('DZ-21', 'Skikda', 'Skikda', 'dz'),
|
||
('DZ-22', 'Sidi Bel Abbès', 'Sidi Bel Abbès', 'dz'),
|
||
('DZ-23', 'Annaba', 'Annaba', 'dz'),
|
||
('DZ-24', 'Guelma', 'Guelma', 'dz'),
|
||
('DZ-25', 'Constantine', 'Constantine', 'dz'),
|
||
('DZ-26', 'Médéa', 'Médéa', 'dz'),
|
||
('DZ-27', 'Mostaganem', 'Mostaganem', 'dz'),
|
||
('DZ-28', 'M\'Sila', 'M\'Sila', 'dz'),
|
||
('DZ-29', 'Mascara', 'Mascara', 'dz'),
|
||
('DZ-30', 'Ouargla', 'Ouargla', 'dz'),
|
||
('DZ-31', 'Oran', 'Oran', 'dz'),
|
||
('DZ-32', 'El Bayadh', 'El Bayadh', 'dz'),
|
||
('DZ-33', 'Illizi', 'Illizi', 'dz'),
|
||
('DZ-34', 'Bordj Bou Arréridj', 'Bordj Bou Arréridj', 'dz'),
|
||
('DZ-35', 'Boumerdès', 'Boumerdès', 'dz'),
|
||
('DZ-36', 'El Tarf', 'El Tarf', 'dz'),
|
||
('DZ-37', 'Tindouf', 'Tindouf', 'dz'),
|
||
('DZ-38', 'Tissemsilt', 'Tissemsilt', 'dz'),
|
||
('DZ-39', 'El Oued', 'El Oued', 'dz'),
|
||
('DZ-40', 'Khenchela', 'Khenchela', 'dz'),
|
||
('DZ-41', 'Souk Ahras', 'Souk Ahras', 'dz'),
|
||
('DZ-42', 'Tipaza', 'Tipaza', 'dz'),
|
||
('DZ-43', 'Mila', 'Mila', 'dz'),
|
||
('DZ-44', 'Aïn Defla', 'Aïn Defla', 'dz'),
|
||
('DZ-45', 'Naâma', 'Naâma', 'dz'),
|
||
('DZ-46', 'Aïn Témouchent', 'Aïn Témouchent', 'dz'),
|
||
('DZ-47', 'Ghardaïa', 'Ghardaïa', 'dz'),
|
||
('DZ-48', 'Relizane', 'Relizane', 'dz'),
|
||
('DZ-49', 'Timimoun', 'Timimoun', 'dz'),
|
||
('DZ-50', 'Bordj Badji Mokhtar', 'Bordj Badji Mokhtar', 'dz'),
|
||
('DZ-51', 'Ouled Djellal', 'Ouled Djellal', 'dz'),
|
||
('DZ-52', 'Béni Abbès', 'Béni Abbès', 'dz'),
|
||
('DZ-53', 'In Salah', 'In Salah', 'dz'),
|
||
('DZ-54', 'In Guezzam', 'In Guezzam', 'dz'),
|
||
('DZ-55', 'Touggourt', 'Touggourt', 'dz'),
|
||
('DZ-56', 'Djanet', 'Djanet', 'dz'),
|
||
('DZ-57', 'El M\'Ghair', 'El M\'Ghair', 'dz'),
|
||
('DZ-58', 'El Meniaa', 'El Meniaa', 'dz'),
|
||
|
||
# American Samoa (AS)
|
||
('AS', 'American Samoa', 'American Samoa', 'as'),
|
||
|
||
# Andorra (AD)
|
||
('AD-02', 'Canillo', 'Canillo', 'ad'),
|
||
('AD-03', 'Encamp', 'Encamp', 'ad'),
|
||
('AD-04', 'La Massana', 'La Massana', 'ad'),
|
||
('AD-05', 'Ordino', 'Ordino', 'ad'),
|
||
('AD-06', 'Sant Julià de Lòria', 'Sant Julià de Lòria', 'ad'),
|
||
('AD-07', 'Andorra la Vella', 'Andorra la Vella', 'ad'),
|
||
('AD-08', 'Escaldes-Engordany', 'Escaldes-Engordany', 'ad'),
|
||
|
||
# Angola (AO)
|
||
('AO-BGO', 'Bengo', 'Bengo', 'ao'),
|
||
('AO-BGU', 'Benguela', 'Benguela', 'ao'),
|
||
('AO-BIE', 'Bié', 'Bié', 'ao'),
|
||
('AO-CAB', 'Cabinda', 'Cabinda', 'ao'),
|
||
('AO-CCU', 'Cuando Cubango', 'Cuando Cubango', 'ao'),
|
||
('AO-CNO', 'Cuanza Norte', 'Cuanza Norte', 'ao'),
|
||
('AO-CUS', 'Cuanza Sul', 'Cuanza Sul', 'ao'),
|
||
('AO-CNN', 'Cunene', 'Cunene', 'ao'),
|
||
('AO-HUA', 'Huambo', 'Huambo', 'ao'),
|
||
('AO-HUI', 'Huíla', 'Huíla', 'ao'),
|
||
('AO-LUA', 'Luanda', 'Luanda', 'ao'),
|
||
('AO-LNO', 'Lunda Norte', 'Lunda Norte', 'ao'),
|
||
('AO-LSU', 'Lunda Sul', 'Lunda Sul', 'ao'),
|
||
('AO-MAL', 'Malanje', 'Malanje', 'ao'),
|
||
('AO-MOX', 'Moxico', 'Moxico', 'ao'),
|
||
('AO-NAM', 'Namibe', 'Namibe', 'ao'),
|
||
('AO-UIG', 'Uíge', 'Uíge', 'ao'),
|
||
('AO-ZAI', 'Zaire', 'Zaire', 'ao'),
|
||
|
||
# Anguilla (AI)
|
||
('AI', 'Anguilla', 'Anguilla', 'ai'),
|
||
|
||
# Antarctica (AQ)
|
||
('AQ', 'Antarctica', 'Antarctica', 'aq'),
|
||
|
||
# Antigua and Barbuda (AG)
|
||
('AG-03', 'Saint George', 'Saint George', 'ag'),
|
||
('AG-04', 'Saint John', 'Saint John', 'ag'),
|
||
('AG-05', 'Saint Mary', 'Saint Mary', 'ag'),
|
||
('AG-06', 'Saint Paul', 'Saint Paul', 'ag'),
|
||
('AG-07', 'Saint Peter', 'Saint Peter', 'ag'),
|
||
('AG-08', 'Saint Philip', 'Saint Philip', 'ag'),
|
||
('AG-10', 'Barbuda', 'Barbuda', 'ag'),
|
||
('AG-11', 'Redonda', 'Redonda', 'ag'),
|
||
|
||
# Argentina (AR)
|
||
('AR-C', 'Ciudad Autónoma de Buenos Aires', 'Autonomous City of Buenos Aires', 'ar'),
|
||
('AR-B', 'Buenos Aires', 'Buenos Aires', 'ar'),
|
||
('AR-K', 'Catamarca', 'Catamarca', 'ar'),
|
||
('AR-H', 'Chaco', 'Chaco', 'ar'),
|
||
('AR-U', 'Chubut', 'Chubut', 'ar'),
|
||
('AR-W', 'Córdoba', 'Córdoba', 'ar'),
|
||
('AR-X', 'Corrientes', 'Corrientes', 'ar'),
|
||
('AR-E', 'Entre Ríos', 'Entre Ríos', 'ar'),
|
||
('AR-P', 'Formosa', 'Formosa', 'ar'),
|
||
('AR-Y', 'Jujuy', 'Jujuy', 'ar'),
|
||
('AR-L', 'La Pampa', 'La Pampa', 'ar'),
|
||
('AR-F', 'La Rioja', 'La Rioja', 'ar'),
|
||
('AR-M', 'Mendoza', 'Mendoza', 'ar'),
|
||
('AR-N', 'Misiones', 'Misiones', 'ar'),
|
||
('AR-Q', 'Neuquén', 'Neuquén', 'ar'),
|
||
('AR-R', 'Río Negro', 'Río Negro', 'ar'),
|
||
('AR-A', 'Salta', 'Salta', 'ar'),
|
||
('AR-J', 'San Juan', 'San Juan', 'ar'),
|
||
('AR-D', 'San Luis', 'San Luis', 'ar'),
|
||
('AR-Z', 'Santa Cruz', 'Santa Cruz', 'ar'),
|
||
('AR-S', 'Santa Fe', 'Santa Fe', 'ar'),
|
||
('AR-G', 'Santiago del Estero', 'Santiago del Estero', 'ar'),
|
||
('AR-V', 'Tierra del Fuego', 'Tierra del Fuego', 'ar'),
|
||
('AR-T', 'Tucumán', 'Tucumán', 'ar'),
|
||
|
||
# Armenia (AM)
|
||
('AM-AG', 'Aragacotn', 'Aragatsotn', 'am'),
|
||
('AM-AR', 'Ararat', 'Ararat', 'am'),
|
||
('AM-AV', 'Armavir', 'Armavir', 'am'),
|
||
('AM-ER', 'Erevan', 'Yerevan', 'am'),
|
||
('AM-GR', 'Gegharkunik', 'Gegharkunik', 'am'),
|
||
('AM-KT', 'Kotayk', 'Kotayk', 'am'),
|
||
('AM-LO', 'Lori', 'Lori', 'am'),
|
||
('AM-SH', 'Shirak', 'Shirak', 'am'),
|
||
('AM-SU', 'Syunik', 'Syunik', 'am'),
|
||
('AM-TV', 'Tavush', 'Tavush', 'am'),
|
||
('AM-VD', 'Vayots Dzor', 'Vayots Dzor', 'am'),
|
||
|
||
# Aruba (AW)
|
||
('AW', 'Aruba', 'Aruba', 'aw'),
|
||
|
||
# Australia (AU)
|
||
('AU-NSW', 'New South Wales', 'New South Wales', 'au'),
|
||
('AU-VIC', 'Victoria', 'Victoria', 'au'),
|
||
('AU-QLD', 'Queensland', 'Queensland', 'au'),
|
||
('AU-SA', 'South Australia', 'South Australia', 'au'),
|
||
('AU-WA', 'Western Australia', 'Western Australia', 'au'),
|
||
('AU-TAS', 'Tasmania', 'Tasmania', 'au'),
|
||
('AU-NT', 'Northern Territory', 'Northern Territory', 'au'),
|
||
('AU-ACT', 'Australian Capital Territory', 'Australian Capital Territory', 'au'),
|
||
|
||
# Austria (AT)
|
||
('AT-1', 'Burgenland', 'Burgenland', 'at'),
|
||
('AT-2', 'Kärnten', 'Carinthia', 'at'),
|
||
('AT-3', 'Niederösterreich', 'Lower Austria', 'at'),
|
||
('AT-4', 'Oberösterreich', 'Upper Austria', 'at'),
|
||
('AT-5', 'Salzburg', 'Salzburg', 'at'),
|
||
('AT-6', 'Steiermark', 'Styria', 'at'),
|
||
('AT-7', 'Tirol', 'Tyrol', 'at'),
|
||
('AT-8', 'Vorarlberg', 'Vorarlberg', 'at'),
|
||
('AT-9', 'Wien', 'Vienna', 'at'),
|
||
|
||
# United States of America (US)
|
||
('US-AL', 'Alabama', 'Alabama', 'us'),
|
||
('US-AK', 'Alaska', 'Alaska', 'us'),
|
||
('US-AZ', 'Arizona', 'Arizona', 'us'),
|
||
('US-AR', 'Arkansas', 'Arkansas', 'us'),
|
||
('US-CA', 'California', 'California', 'us'),
|
||
('US-CO', 'Colorado', 'Colorado', 'us'),
|
||
('US-CT', 'Connecticut', 'Connecticut', 'us'),
|
||
('US-DE', 'Delaware', 'Delaware', 'us'),
|
||
('US-FL', 'Florida', 'Florida', 'us'),
|
||
('US-GA', 'Georgia', 'Georgia', 'us'),
|
||
('US-HI', 'Hawaii', 'Hawaii', 'us'),
|
||
('US-ID', 'Idaho', 'Idaho', 'us'),
|
||
('US-IL', 'Illinois', 'Illinois', 'us'),
|
||
('US-IN', 'Indiana', 'Indiana', 'us'),
|
||
('US-IA', 'Iowa', 'Iowa', 'us'),
|
||
('US-KS', 'Kansas', 'Kansas', 'us'),
|
||
('US-KY', 'Kentucky', 'Kentucky', 'us'),
|
||
('US-LA', 'Louisiana', 'Louisiana', 'us'),
|
||
('US-ME', 'Maine', 'Maine', 'us'),
|
||
('US-MD', 'Maryland', 'Maryland', 'us'),
|
||
('US-MA', 'Massachusetts', 'Massachusetts', 'us'),
|
||
('US-MI', 'Michigan', 'Michigan', 'us'),
|
||
('US-MN', 'Minnesota', 'Minnesota', 'us'),
|
||
('US-MS', 'Mississippi', 'Mississippi', 'us'),
|
||
('US-MO', 'Missouri', 'Missouri', 'us'),
|
||
('US-MT', 'Montana', 'Montana', 'us'),
|
||
('US-NE', 'Nebraska', 'Nebraska', 'us'),
|
||
('US-NV', 'Nevada', 'Nevada', 'us'),
|
||
('US-NH', 'New Hampshire', 'New Hampshire', 'us'),
|
||
('US-NJ', 'New Jersey', 'New Jersey', 'us'),
|
||
('US-NM', 'New Mexico', 'New Mexico', 'us'),
|
||
('US-NY', 'New York', 'New York', 'us'),
|
||
('US-NC', 'North Carolina', 'North Carolina', 'us'),
|
||
('US-ND', 'North Dakota', 'North Dakota', 'us'),
|
||
('US-OH', 'Ohio', 'Ohio', 'us'),
|
||
('US-OK', 'Oklahoma', 'Oklahoma', 'us'),
|
||
('US-OR', 'Oregon', 'Oregon', 'us'),
|
||
('US-PA', 'Pennsylvania', 'Pennsylvania', 'us'),
|
||
('US-RI', 'Rhode Island', 'Rhode Island', 'us'),
|
||
('US-SC', 'South Carolina', 'South Carolina', 'us'),
|
||
('US-SD', 'South Dakota', 'South Dakota', 'us'),
|
||
('US-TN', 'Tennessee', 'Tennessee', 'us'),
|
||
('US-TX', 'Texas', 'Texas', 'us'),
|
||
('US-UT', 'Utah', 'Utah', 'us'),
|
||
('US-VT', 'Vermont', 'Vermont', 'us'),
|
||
('US-VA', 'Virginia', 'Virginia', 'us'),
|
||
('US-WA', 'Washington', 'Washington', 'us'),
|
||
('US-WV', 'West Virginia', 'West Virginia', 'us'),
|
||
('US-WI', 'Wisconsin', 'Wisconsin', 'us'),
|
||
('US-WY', 'Wyoming', 'Wyoming', 'us'),
|
||
('CA-AB', 'Alberta', 'Alberta', 'ca'),
|
||
('CA-BC', 'British Columbia', 'British Columbia', 'ca'),
|
||
('CA-MB', 'Manitoba', 'Manitoba', 'ca'),
|
||
('CA-NB', 'New Brunswick', 'New Brunswick', 'ca'),
|
||
('CA-NL', 'Newfoundland and Labrador', 'Newfoundland and Labrador', 'ca'),
|
||
('CA-NS', 'Nova Scotia', 'Nova Scotia', 'ca'),
|
||
('CA-ON', 'Ontario', 'Ontario', 'ca'),
|
||
('CA-PE', 'Prince Edward Island', 'Prince Edward Island', 'ca'),
|
||
('CA-QC', 'Quebec', 'Quebec', 'ca'),
|
||
('CA-SK', 'Saskatchewan', 'Saskatchewan', 'ca'),
|
||
('CA-NT', 'Northwest Territories', 'Northwest Territories', 'ca'),
|
||
('CA-NU', 'Nunavut', 'Nunavut', 'ca'),
|
||
('CA-YT', 'Yukon', 'Yukon', 'ca'),
|
||
('DE-BW', 'Baden-Württemberg', 'Baden-Württemberg', 'de'),
|
||
('DE-BY', 'Bayern', 'Bavaria', 'de'),
|
||
('DE-BE', 'Berlin', 'Berlin', 'de'),
|
||
('DE-BB', 'Brandenburg', 'Brandenburg', 'de'),
|
||
('DE-HB', 'Bremen', 'Bremen', 'de'),
|
||
('DE-HH', 'Hamburg', 'Hamburg', 'de'),
|
||
('DE-HE', 'Hessen', 'Hesse', 'de'),
|
||
('DE-MV', 'Mecklenburg-Vorpommern', 'Mecklenburg-Western Pomerania', 'de'),
|
||
('DE-NI', 'Niedersachsen', 'Lower Saxony', 'de'),
|
||
('DE-NW', 'Nordrhein-Westfalen', 'North Rhine-Westphalia', 'de'),
|
||
('DE-RP', 'Rheinland-Pfalz', 'Rhineland-Palatinate', 'de'),
|
||
('DE-SL', 'Saarland', 'Saarland', 'de'),
|
||
('DE-SN', 'Sachsen', 'Saxony', 'de'),
|
||
('DE-ST', 'Sachsen-Anhalt', 'Saxony-Anhalt', 'de'),
|
||
('DE-SH', 'Schleswig-Holstein', 'Schleswig-Holstein', 'de'),
|
||
('DE-TH', 'Thüringen', 'Thuringia', 'de'),
|
||
('FR-ARA', 'Auvergne-Rhône-Alpes', 'Auvergne-Rhône-Alpes', 'fr'),
|
||
('FR-BFC', 'Bourgogne-Franche-Comté', 'Burgundy-Franche-Comté', 'fr'),
|
||
('FR-BRE', 'Bretagne', 'Brittany', 'fr'),
|
||
('FR-CVL', 'Centre-Val de Loire', 'Centre-Val de Loire', 'fr'),
|
||
('FR-GES', 'Grand Est', 'Grand Est', 'fr'),
|
||
('FR-HDF', 'Hauts-de-France', 'Hauts-de-France', 'fr'),
|
||
('FR-IDF', 'Île-de-France', 'Île-de-France', 'fr'),
|
||
('FR-NOR', 'Normandy', 'Normandy', 'fr'),
|
||
('FR-NAQ', 'Nouvelle-Aquitaine', 'New Aquitaine', 'fr'),
|
||
('FR-OCC', 'Occitanie', 'Occitania', 'fr'),
|
||
('FR-PDL', 'Pays de la Loire', 'Pays de la Loire', 'fr'),
|
||
('FR-PAC', 'Provence-Alpes-Côte d''Azur', 'Provence-Alpes-Côte d''Azur', 'fr'),
|
||
('FR-COR', 'Corsica', 'Corsica', 'fr'),
|
||
('FR-MQ', 'Martinique', 'Martinique', 'fr'),
|
||
('FR-GF', 'French Guiana', 'French Guiana', 'fr'),
|
||
('FR-RÉ', 'Réunion', 'Réunion', 'fr'),
|
||
('FR-YT', 'Mayotte', 'Mayotte', 'fr'),
|
||
('FR-GP', 'Guadeloupe', 'Guadeloupe', 'fr'),
|
||
('GB-ENG', 'England', 'England', 'gb'),
|
||
('GB-NIR', 'Northern Ireland', 'Northern Ireland', 'gb'),
|
||
('GB-SCT', 'Scotland', 'Scotland', 'gb'),
|
||
('GB-WLS', 'Wales', 'Wales', 'gb'),
|
||
('MX-AGU', 'Aguascalientes', 'Aguascalientes', 'mx'),
|
||
('MX-BCN', 'Baja California', 'Baja California', 'mx'),
|
||
('MX-BCS', 'Baja California Sur', 'Baja California Sur', 'mx'),
|
||
('MX-CAM', 'Campeche', 'Campeche', 'mx'),
|
||
('MX-CHP', 'Chiapas', 'Chiapas', 'mx'),
|
||
('MX-CHH', 'Chihuahua', 'Chihuahua', 'mx'),
|
||
('MX-CMX', 'Ciudad de México', 'Mexico City', 'mx'),
|
||
('MX-COA', 'Coahuila de Zaragoza', 'Coahuila', 'mx'),
|
||
('MX-COL', 'Colima', 'Colima', 'mx'),
|
||
('MX-DUR', 'Durango', 'Durango', 'mx'),
|
||
('MX-GUA', 'Guanajuato', 'Guanajuato', 'mx'),
|
||
('MX-GRO', 'Guerrero', 'Guerrero', 'mx'),
|
||
('MX-HID', 'Hidalgo', 'Hidalgo', 'mx'),
|
||
('MX-JAL', 'Jalisco', 'Jalisco', 'mx'),
|
||
('MX-MIC', 'Michoacán de Ocampo', 'Michoacán', 'mx'),
|
||
('MX-MOR', 'Morelos', 'Morelos', 'mx'),
|
||
('MX-MEX', 'México', 'State of Mexico', 'mx'),
|
||
('MX-NAY', 'Nayarit', 'Nayarit', 'mx'),
|
||
('MX-NLE', 'Nuevo León', 'Nuevo León', 'mx'),
|
||
('MX-OAX', 'Oaxaca', 'Oaxaca', 'mx'),
|
||
('MX-PUE', 'Puebla', 'Puebla', 'mx'),
|
||
('MX-QUE', 'Querétaro', 'Querétaro', 'mx'),
|
||
('MX-ROO', 'Quintana Roo', 'Quintana Roo', 'mx'),
|
||
('MX-SLP', 'San Luis Potosí', 'San Luis Potosí', 'mx'),
|
||
('MX-SIN', 'Sinaloa', 'Sinaloa', 'mx'),
|
||
('MX-SON', 'Sonora', 'Sonora', 'mx'),
|
||
('MX-TAB', 'Tabasco', 'Tabasco', 'mx'),
|
||
('MX-TAM', 'Tamaulipas', 'Tamaulipas', 'mx'),
|
||
('MX-TLA', 'Tlaxcala', 'Tlaxcala', 'mx'),
|
||
('MX-VER', 'Veracruz de Ignacio de la Llave', 'Veracruz', 'mx'),
|
||
('MX-YUC', 'Yucatán', 'Yucatán', 'mx'),
|
||
('MX-ZAC', 'Zacatecas', 'Zacatecas', 'mx'),
|
||
('JP-01', 'Hokkaido', 'Hokkaido', 'jp'),
|
||
('JP-02', 'Aomori', 'Aomori', 'jp'),
|
||
('JP-03', 'Iwate', 'Iwate', 'jp'),
|
||
('JP-04', 'Miyagi', 'Miyagi', 'jp'),
|
||
('JP-05', 'Akita', 'Akita', 'jp'),
|
||
('JP-06', 'Yamagata', 'Yamagata', 'jp'),
|
||
('JP-07', 'Fukushima', 'Fukushima', 'jp'),
|
||
('JP-08', 'Ibaraki', 'Ibaraki', 'jp'),
|
||
('JP-09', 'Tochigi', 'Tochigi', 'jp'),
|
||
('JP-10', 'Gunma', 'Gunma', 'jp'),
|
||
('JP-11', 'Saitama', 'Saitama', 'jp'),
|
||
('JP-12', 'Chiba', 'Chiba', 'jp'),
|
||
('JP-13', 'Tokyo', 'Tokyo', 'jp'),
|
||
('JP-14', 'Kanagawa', 'Kanagawa', 'jp'),
|
||
('JP-15', 'Niigata', 'Niigata', 'jp'),
|
||
('JP-16', 'Toyama', 'Toyama', 'jp'),
|
||
('JP-17', 'Ishikawa', 'Ishikawa', 'jp'),
|
||
('JP-18', 'Fukui', 'Fukui', 'jp'),
|
||
('JP-19', 'Yamanashi', 'Yamanashi', 'jp'),
|
||
('JP-20', 'Nagano', 'Nagano', 'jp'),
|
||
('JP-21', 'Gifu', 'Gifu', 'jp'),
|
||
('JP-22', 'Shizuoka', 'Shizuoka', 'jp'),
|
||
('JP-23', 'Aichi', 'Aichi', 'jp'),
|
||
('JP-24', 'Mie', 'Mie', 'jp'),
|
||
('JP-25', 'Shiga', 'Shiga', 'jp'),
|
||
('JP-26', 'Kyoto', 'Kyoto', 'jp'),
|
||
('JP-27', 'Osaka', 'Osaka', 'jp'),
|
||
('JP-28', 'Hyogo', 'Hyogo', 'jp'),
|
||
('JP-29', 'Nara', 'Nara', 'jp'),
|
||
('JP-30', 'Wakayama', 'Wakayama', 'jp'),
|
||
('JP-31', 'Tottori', 'Tottori', 'jp'),
|
||
('JP-32', 'Shimane', 'Shimane', 'jp'),
|
||
('JP-33', 'Okayama', 'Okayama', 'jp'),
|
||
('JP-34', 'Hiroshima', 'Hiroshima', 'jp'),
|
||
('JP-35', 'Yamaguchi', 'Yamaguchi', 'jp'),
|
||
('JP-36', 'Tokushima', 'Tokushima', 'jp'),
|
||
('JP-37', 'Kagawa', 'Kagawa', 'jp'),
|
||
('JP-38', 'Ehime', 'Ehime', 'jp'),
|
||
('JP-39', 'Kochi', 'Kochi', 'jp'),
|
||
('JP-40', 'Fukuoka', 'Fukuoka', 'jp'),
|
||
('JP-41', 'Saga', 'Saga', 'jp'),
|
||
('JP-42', 'Nagasaki', 'Nagasaki', 'jp'),
|
||
('JP-43', 'Kumamoto', 'Kumamoto', 'jp'),
|
||
('JP-44', 'Oita', 'Oita', 'jp'),
|
||
('JP-45', 'Miyazaki', 'Miyazaki', 'jp'),
|
||
('JP-46', 'Kagoshima', 'Kagoshima', 'jp'),
|
||
('JP-47', 'Okinawa', 'Okinawa', 'jp'),
|
||
('CN-BJ', 'Beijing', 'Beijing', 'cn'),
|
||
('CN-TJ', 'Tianjin', 'Tianjin', 'cn'),
|
||
('CN-HE', 'Hebei', 'Hebei', 'cn'),
|
||
('CN-SX', 'Shanxi', 'Shanxi', 'cn'),
|
||
('CN-NM', 'Inner Mongolia', 'Inner Mongolia', 'cn'),
|
||
('CN-LN', 'Liaoning', 'Liaoning', 'cn'),
|
||
('CN-JL', 'Jilin', 'Jilin', 'cn'),
|
||
('CN-HL', 'Heilongjiang', 'Heilongjiang', 'cn'),
|
||
('CN-SH', 'Shanghai', 'Shanghai', 'cn'),
|
||
('CN-JS', 'Jiangsu', 'Jiangsu', 'cn'),
|
||
('CN-ZJ', 'Zhejiang', 'Zhejiang', 'cn'),
|
||
('CN-AH', 'Anhui', 'Anhui', 'cn'),
|
||
('CN-FJ', 'Fujian', 'Fujian', 'cn'),
|
||
('CN-JX', 'Jiangxi', 'Jiangxi', 'cn'),
|
||
('CN-SD', 'Shandong', 'Shandong', 'cn'),
|
||
('CN-HA', 'Henan', 'Henan', 'cn'),
|
||
('CN-HB', 'Hubei', 'Hubei', 'cn'),
|
||
('CN-HN', 'Hunan', 'Hunan', 'cn'),
|
||
('CN-GD', 'Guangdong', 'Guangdong', 'cn'),
|
||
('CN-GX', 'Guangxi', 'Guangxi', 'cn'),
|
||
('CN-HI', 'Hainan', 'Hainan', 'cn'),
|
||
('CN-CQ', 'Chongqing', 'Chongqing', 'cn'),
|
||
('CN-SC', 'Sichuan', 'Sichuan', 'cn'),
|
||
('CN-GZ', 'Guizhou', 'Guizhou', 'cn'),
|
||
('CN-YN', 'Yunnan', 'Yunnan', 'cn'),
|
||
('CN-XZ', 'Tibet', 'Tibet', 'cn'),
|
||
('CN-SA', 'Shaanxi', 'Shaanxi', 'cn'),
|
||
('CN-GS', 'Gansu', 'Gansu', 'cn'),
|
||
('CN-QH', 'Qinghai', 'Qinghai', 'cn'),
|
||
('CN-NX', 'Ningxia', 'Ningxia', 'cn'),
|
||
('CN-XJ', 'Xinjiang', 'Xinjiang', 'cn'),
|
||
('IN-AN', 'Andaman and Nicobar Islands', 'Andaman and Nicobar Islands', 'in'),
|
||
('IN-AP', 'Andhra Pradesh', 'Andhra Pradesh', 'in'),
|
||
('IN-AR', 'Arunachal Pradesh', 'Arunachal Pradesh', 'in'),
|
||
('IN-AS', 'Assam', 'Assam', 'in'),
|
||
('IN-BR', 'Bihar', 'Bihar', 'in'),
|
||
('IN-CH', 'Chandigarh', 'Chandigarh', 'in'),
|
||
('IN-CT', 'Chhattisgarh', 'Chhattisgarh', 'in'),
|
||
('IN-DN', 'Dadra and Nagar Haveli and Daman and Diu', 'Dadra and Nagar Haveli and Daman and Diu', 'in'),
|
||
('IN-DD', 'Daman and Diu', 'Daman and Diu', 'in'),
|
||
('IN-DL', 'Delhi', 'Delhi', 'in'),
|
||
('IN-GA', 'Goa', 'Goa', 'in'),
|
||
('IN-GJ', 'Gujarat', 'Gujarat', 'in'),
|
||
('IN-HR', 'Haryana', 'Haryana', 'in'),
|
||
('IN-HP', 'Himachal Pradesh', 'Himachal Pradesh', 'in'),
|
||
('IN-JH', 'Jharkhand', 'Jharkhand', 'in'),
|
||
('IN-KA', 'Karnataka', 'Karnataka', 'in'),
|
||
('IN-KL', 'Kerala', 'Kerala', 'in'),
|
||
('IN-LD', 'Lakshadweep', 'Lakshadweep', 'in'),
|
||
('IN-MP', 'Madhya Pradesh', 'Madhya Pradesh', 'in'),
|
||
('IN-MH', 'Maharashtra', 'Maharashtra', 'in'),
|
||
('IN-MN', 'Manipur', 'Manipur', 'in'),
|
||
('IN-ML', 'Meghalaya', 'Meghalaya', 'in'),
|
||
('IN-MZ', 'Mizoram', 'Mizoram', 'in'),
|
||
('IN-NL', 'Nagaland', 'Nagaland', 'in'),
|
||
('IN-OR', 'Odisha', 'Odisha', 'in'),
|
||
('IN-PY', 'Puducherry', 'Puducherry', 'in'),
|
||
('IN-PB', 'Punjab', 'Punjab', 'in'),
|
||
('IN-RJ', 'Rajasthan', 'Rajasthan', 'in'),
|
||
('IN-SK', 'Sikkim', 'Sikkim', 'in'),
|
||
('IN-TN', 'Tamil Nadu', 'Tamil Nadu', 'in'),
|
||
('IN-TG', 'Telangana', 'Telangana', 'in'),
|
||
('IN-TR', 'Tripura', 'Tripura', 'in'),
|
||
('IN-UP', 'Uttar Pradesh', 'Uttar Pradesh', 'in'),
|
||
('IN-UT', 'Uttarakhand', 'Uttarakhand', 'in'),
|
||
('IN-WB', 'West Bengal', 'West Bengal', 'in'),
|
||
('NZ-N', 'Northland', 'Northland', 'nz'),
|
||
('NZ-AUK', 'Auckland', 'Auckland', 'nz'),
|
||
('NZ-WKO', 'Waikato', 'Waikato', 'nz'),
|
||
('NZ-BOP', 'Bay of Plenty', 'Bay of Plenty', 'nz'),
|
||
('NZ-GIS', 'Gisborne', 'Gisborne', 'nz'),
|
||
('NZ-HKB', 'Hawke''s Bay', 'Hawke''s Bay', 'nz'),
|
||
('NZ-TKI', 'Taranaki', 'Taranaki', 'nz'),
|
||
('NZ-MWT', 'Manawatū-Whanganui', 'Manawatū-Whanganui', 'nz'),
|
||
('NZ-WGN', 'Wellington', 'Wellington', 'nz'),
|
||
('NZ-TAS', 'Tasman', 'Tasman', 'nz'),
|
||
('NZ-NEL', 'Nelson', 'Nelson', 'nz'),
|
||
('NZ-MBH', 'Marlborough', 'Marlborough', 'nz'),
|
||
('NZ-WTC', 'West Coast', 'West Coast', 'nz'),
|
||
('NZ-CAN', 'Canterbury', 'Canterbury', 'nz'),
|
||
('NZ-OTA', 'Otago', 'Otago', 'nz'),
|
||
('NZ-STL', 'Southland', 'Southland', 'nz'),
|
||
('ZA-EC', 'Eastern Cape', 'Eastern Cape', 'za'),
|
||
('ZA-FS', 'Free State', 'Free State', 'za'),
|
||
('ZA-GP', 'Gauteng', 'Gauteng', 'za'),
|
||
('ZA-KZN', 'KwaZulu-Natal', 'KwaZulu-Natal', 'za'),
|
||
('ZA-LP', 'Limpopo', 'Limpopo', 'za'),
|
||
('ZA-MP', 'Mpumalanga', 'Mpumalanga', 'za'),
|
||
('ZA-NW', 'North West', 'North West', 'za'),
|
||
('ZA-NC', 'Northern Cape', 'Northern Cape', 'za'),
|
||
('ZA-WC', 'Western Cape', 'Western Cape', 'za'),
|
||
('EG-ALX', 'Alexandria', 'Alexandria', 'eg'),
|
||
('EG-ASN', 'Aswan', 'Aswan', 'eg'),
|
||
('EG-ASY', 'Asyut', 'Asyut', 'eg'),
|
||
('EG-BHR', 'Beheira', 'Beheira', 'eg'),
|
||
('EG-BNS', 'Beni Suef', 'Beni Suef', 'eg'),
|
||
('EG-C', 'Cairo', 'Cairo', 'eg'),
|
||
('EG-DK', 'Dakahlia', 'Dakahlia', 'eg'),
|
||
('EG-DAM', 'Damietta', 'Damietta', 'eg'),
|
||
('EG-FYM', 'Faiyum', 'Faiyum', 'eg'),
|
||
('EG-GH', 'Gharbia', 'Gharbia', 'eg'),
|
||
('EG-GZ', 'Giza', 'Giza', 'eg'),
|
||
('EG-IS', 'Ismailia', 'Ismailia', 'eg'),
|
||
('EG-KB', 'Kafr El Sheikh', 'Kafr El Sheikh', 'eg'),
|
||
('EG-LX', 'Luxor', 'Luxor', 'eg'),
|
||
('EG-MN', 'Minya', 'Minya', 'eg'),
|
||
('EG-MT', 'Matrouh', 'Matrouh', 'eg'),
|
||
('EG-QH', 'Qalyubia', 'Qalyubia', 'eg'),
|
||
('EG-KFS', 'Qena', 'Qena', 'eg'),
|
||
('EG-SHG', 'Sohag', 'Sohag', 'eg'),
|
||
('EG-SHR', 'Sharqia', 'Sharqia', 'eg'),
|
||
('EG-SIN', 'South Sinai', 'South Sinai', 'eg'),
|
||
('EG-SW', 'Suez', 'Suez', 'eg'),
|
||
('EG-WAD', 'New Valley', 'New Valley', 'eg'),
|
||
('EG-ASD', 'North Sinai', 'North Sinai', 'eg'),
|
||
('EG-PTS', 'Port Said', 'Port Said', 'eg'),
|
||
('EG-SKB', 'Suez', 'Suez', 'eg'),
|
||
('EG-ESI', 'Ismailia', 'Ismailia', 'eg'),
|
||
('BR-AC', 'Acre', 'Acre', 'br'),
|
||
('BR-AL', 'Alagoas', 'Alagoas', 'br'),
|
||
('BR-AP', 'Amapá', 'Amapá', 'br'),
|
||
('BR-AM', 'Amazonas', 'Amazonas', 'br'),
|
||
('BR-BA', 'Bahia', 'Bahia', 'br'),
|
||
('BR-CE', 'Ceará', 'Ceará', 'br'),
|
||
('BR-DF', 'Federal District', 'Federal District', 'br'),
|
||
('BR-ES', 'Espírito Santo', 'Espírito Santo', 'br'),
|
||
('BR-GO', 'Goiás', 'Goiás', 'br'),
|
||
('BR-MA', 'Maranhão', 'Maranhão', 'br'),
|
||
('BR-MT', 'Mato Grosso', 'Mato Grosso', 'br'),
|
||
('BR-MS', 'Mato Grosso do Sul', 'Mato Grosso do Sul', 'br'),
|
||
('BR-MG', 'Minas Gerais', 'Minas Gerais', 'br'),
|
||
('BR-PA', 'Pará', 'Pará', 'br'),
|
||
('BR-PB', 'Paraíba', 'Paraíba', 'br'),
|
||
('BR-PR', 'Paraná', 'Paraná', 'br'),
|
||
('BR-PE', 'Pernambuco', 'Pernambuco', 'br'),
|
||
('BR-PI', 'Piauí', 'Piauí', 'br'),
|
||
('BR-RJ', 'Rio de Janeiro', 'Rio de Janeiro', 'br'),
|
||
('BR-RN', 'Rio Grande do Norte', 'Rio Grande do Norte', 'br'),
|
||
('BR-RS', 'Rio Grande do Sul', 'Rio Grande do Sul', 'br'),
|
||
('BR-RO', 'Rondônia', 'Rondônia', 'br'),
|
||
('BR-RR', 'Roraima', 'Roraima', 'br'),
|
||
('BR-SC', 'Santa Catarina', 'Santa Catarina', 'br'),
|
||
('BR-SP', 'São Paulo', 'São Paulo', 'br'),
|
||
('BR-SE', 'Sergipe', 'Sergipe', 'br'),
|
||
('BR-TO', 'Tocantins', 'Tocantins', 'br'),
|
||
('SE-AB', 'Stockholm', 'Stockholm', 'se'),
|
||
('SE-AC', 'Västerbotten', 'Västerbotten', 'se'),
|
||
('SE-BD', 'Norrbotten', 'Norrbotten', 'se'),
|
||
('SE-C', 'Uppsala', 'Uppsala', 'se'),
|
||
('SE-D', 'Södermanland', 'Södermanland', 'se'),
|
||
('SE-E', 'Östergötland', 'Östergötland', 'se'),
|
||
('SE-F', 'Jönköping', 'Jönköping', 'se'),
|
||
('SE-G', 'Kronoberg', 'Kronoberg', 'se'),
|
||
('SE-H', 'Kalmar', 'Kalmar', 'se'),
|
||
('SE-I', 'Gotland', 'Gotland', 'se'),
|
||
('SE-K', 'Blekinge', 'Blekinge', 'se'),
|
||
('SE-M', 'Skåne', 'Skåne', 'se'),
|
||
('SE-N', 'Halland', 'Halland', 'se'),
|
||
('SE-O', 'Västra Götaland', 'Västra Götaland', 'se'),
|
||
('SE-S', 'Värmland', 'Värmland', 'se'),
|
||
('SE-T', 'Örebro', 'Örebro', 'se'),
|
||
('SE-U', 'Västmanland', 'Västmanland', 'se'),
|
||
('SE-W', 'Dalarna', 'Dalarna', 'se'),
|
||
('SE-X', 'Gävleborg', 'Gävleborg', 'se'),
|
||
('SE-Y', 'Västernorrland', 'Västernorrland', 'se'),
|
||
('SE-Z', 'Jämtland', 'Jämtland', 'se'),
|
||
('IE-C', 'Connacht', 'Connacht', 'ie'),
|
||
('IE-L', 'Leinster', 'Leinster', 'ie'),
|
||
('IE-M', 'Munster', 'Munster', 'ie'),
|
||
('IE-U', 'Ulster', 'Ulster', 'ie'),
|
||
('ES-AN', 'Andalucía', 'Andalusia', 'es'),
|
||
('ES-AR', 'Aragón', 'Aragon', 'es'),
|
||
('ES-AS', 'Asturias', 'Asturias', 'es'),
|
||
('ES-CB', 'Cantabria', 'Cantabria', 'es'),
|
||
('ES-CL', 'Castilla y León', 'Castile and León', 'es'),
|
||
('ES-CM', 'Castilla-La Mancha', 'Castilla–La Mancha', 'es'),
|
||
('ES-CN', 'Canarias', 'Canary Islands', 'es'),
|
||
('ES-CT', 'Cataluña', 'Catalonia', 'es'),
|
||
('ES-EX', 'Extremadura', 'Extremadura', 'es'),
|
||
('ES-GA', 'Galicia', 'Galicia', 'es'),
|
||
('ES-IB', 'Islas Baleares', 'Balearic Islands', 'es'),
|
||
('ES-MD', 'Madrid', 'Madrid', 'es'),
|
||
('ES-MC', 'Murcia', 'Murcia', 'es'),
|
||
('ES-NC', 'Navarra', 'Navarre', 'es'),
|
||
('ES-PV', 'País Vasco', 'Basque Country', 'es'),
|
||
('ES-RI', 'La Rioja', 'La Rioja', 'es'),
|
||
('ES-VC', 'Comunidad Valenciana', 'Valencian Community', 'es'),
|
||
('CH-AG', 'Aargau', 'Aargau', 'ch'),
|
||
('CH-AR', 'Appenzell Ausserrhoden', 'Appenzell Outer Rhodes', 'ch'),
|
||
('CH-AI', 'Appenzell Innerrhoden', 'Appenzell Inner Rhodes', 'ch'),
|
||
('CH-BL', 'Basel-Landschaft', 'Basel-Country', 'ch'),
|
||
('CH-BS', 'Basel-Stadt', 'Basel-City', 'ch'),
|
||
('CH-BE', 'Bern', 'Bern', 'ch'),
|
||
('CH-FR', 'Fribourg', 'Fribourg', 'ch'),
|
||
('CH-GE', 'Genève', 'Geneva', 'ch'),
|
||
('CH-GL', 'Glarus', 'Glarus', 'ch'),
|
||
('CH-GR', 'Graubünden', 'Grisons', 'ch'),
|
||
('CH-JU', 'Jura', 'Jura', 'ch'),
|
||
('CH-LU', 'Luzern', 'Lucerne', 'ch'),
|
||
('CH-NE', 'Neuchâtel', 'Neuchâtel', 'ch'),
|
||
('CH-NW', 'Nidwalden', 'Nidwalden', 'ch'),
|
||
('CH-OW', 'Obwalden', 'Obwalden', 'ch'),
|
||
('CH-SH', 'Schaffhausen', 'Schaffhausen', 'ch'),
|
||
('CH-SZ', 'Schwyz', 'Schwyz', 'ch'),
|
||
('CH-SO', 'Solothurn', 'Solothurn', 'ch'),
|
||
('CH-SG', 'St. Gallen', 'St. Gallen', 'ch'),
|
||
('CH-TG', 'Thurgau', 'Thurgau', 'ch'),
|
||
('CH-TI', 'Ticino', 'Ticino', 'ch'),
|
||
('CH-UR', 'Uri', 'Uri', 'ch'),
|
||
('CH-VS', 'Valais', 'Valais', 'ch'),
|
||
('CH-VD', 'Vaud', 'Vaud', 'ch'),
|
||
('CH-ZG', 'Zug', 'Zug', 'ch'),
|
||
('CH-ZH', 'Zürich', 'Zurich', 'ch'),
|
||
('IT-65', 'Abruzzo', 'Abruzzo', 'it'),
|
||
('IT-77', 'Basilicata', 'Basilicata', 'it'),
|
||
('IT-78', 'Calabria', 'Calabria', 'it'),
|
||
('IT-72', 'Campania', 'Campania', 'it'),
|
||
('IT-45', 'Emilia-Romagna', 'Emilia-Romagna', 'it'),
|
||
('IT-36', 'Friuli Venezia Giulia', 'Friuli-Venezia Giulia', 'it'),
|
||
('IT-62', 'Lazio', 'Lazio', 'it'),
|
||
('IT-42', 'Liguria', 'Liguria', 'it'),
|
||
('IT-25', 'Lombardia', 'Lombardy', 'it'),
|
||
('IT-57', 'Marche', 'Marche', 'it'),
|
||
('IT-67', 'Molise', 'Molise', 'it'),
|
||
('IT-21', 'Piemonte', 'Piedmont', 'it'),
|
||
('IT-75', 'Puglia', 'Apulia', 'it'),
|
||
('IT-88', 'Sardegna', 'Sardinia', 'it'),
|
||
('IT-82', 'Sicilia', 'Sicily', 'it'),
|
||
('IT-52', 'Toscana', 'Tuscany', 'it'),
|
||
('IT-32', 'Trentino-Alto Adige', 'Trentino-South Tyrol', 'it'),
|
||
('IT-55', 'Umbria', 'Umbria', 'it'),
|
||
('IT-23', 'Valle d''Aosta', 'Aosta Valley', 'it'),
|
||
('IT-34', 'Veneto', 'Veneto', 'it'),
|
||
('IS-1', 'Höfuðborgarsvæði', 'Capital Region', 'is'),
|
||
('IS-2', 'Suðurnes', 'Southern Peninsula', 'is'),
|
||
('IS-3', 'Vesturland', 'West', 'is'),
|
||
('IS-4', 'Vestfirðir', 'Westfjords', 'is'),
|
||
('IS-5', 'Norðurland vestra', 'Northwestern Region', 'is'),
|
||
('IS-6', 'Norðurland eystra', 'Northeastern Region', 'is'),
|
||
('IS-7', 'Austurland', 'Eastern Region', 'is'),
|
||
('IS-8', 'Suðurland', 'Southern Region', 'is'),
|
||
('CZ-20', 'Středočeský kraj', 'Central Bohemian Region', 'cz'),
|
||
('CZ-31', 'Jihočeský kraj', 'South Bohemian Region', 'cz'),
|
||
('CZ-32', 'Plzeňský kraj', 'Plzeň Region', 'cz'),
|
||
('CZ-41', 'Karlovarský kraj', 'Karlovy Vary Region', 'cz'),
|
||
('CZ-42', 'Ústecký kraj', 'Ústí nad Labem Region', 'cz'),
|
||
('CZ-51', 'Liberecký kraj', 'Liberec Region', 'cz'),
|
||
('CZ-52', 'Královéhradecký kraj', 'Hradec Králové Region', 'cz'),
|
||
('CZ-53', 'Pardubický kraj', 'Pardubice Region', 'cz'),
|
||
('CZ-63', 'Kraj Vysočina', 'Vysočina Region', 'cz'),
|
||
('CZ-64', 'Jihomoravský kraj', 'South Moravian Region', 'cz'),
|
||
('CZ-71', 'Olomoucký kraj', 'Olomouc Region', 'cz'),
|
||
('CZ-72', 'Zlínský kraj', 'Zlín Region', 'cz'),
|
||
('CZ-80', 'Moravskoslezský kraj', 'Moravian-Silesian Region', 'cz'),
|
||
('SK-BL', 'Bratislavský kraj', 'Bratislava Region', 'sk'),
|
||
('SK-TA', 'Trnavský kraj', 'Trnava Region', 'sk'),
|
||
('SK-TC', 'Trenčiansky kraj', 'Trenčín Region', 'sk'),
|
||
('SK-NI', 'Nitriansky kraj', 'Nitra Region', 'sk'),
|
||
('SK-ZI', 'Žilinský kraj', 'Žilina Region', 'sk'),
|
||
('SK-BC', 'Banskobystrický kraj', 'Banská Bystrica Region', 'sk'),
|
||
('SK-PV', 'Prešovský Kraj', 'Prešov Region', 'sk'),
|
||
('SK-KI', 'Košický kraj', 'Košice Region', 'sk'),
|
||
('LI-01', 'Balzers', 'Balzers', 'li'),
|
||
('LI-02', 'Eschen', 'Eschen', 'li'),
|
||
('LI-03', 'Gamprin', 'Gamprin', 'li'),
|
||
('LI-04', 'Mauren', 'Mauren', 'li'),
|
||
('LI-05', 'Planken', 'Planken', 'li'),
|
||
('LI-06', 'Ruggell', 'Ruggell', 'li'),
|
||
('LI-07', 'Schaan', 'Schaan', 'li'),
|
||
('LI-08', 'Schellenberg', 'Schellenberg', 'li'),
|
||
('LI-09', 'Triesen', 'Triesen', 'li'),
|
||
('LI-10', 'Triesenberg', 'Triesenberg', 'li'),
|
||
('LI-11', 'Vaduz', 'Vaduz', 'li'),
|
||
]
|
||
|
||
|
||
if not force and (Country.objects.exists() or Region.objects.exists()):
|
||
self.stdout.write(self.style.WARNING(
|
||
'Countries or regions already exist in the database. Use --force to override.'
|
||
))
|
||
return
|
||
|
||
try:
|
||
with transaction.atomic():
|
||
if force:
|
||
self.sync_countries(countries)
|
||
self.sync_regions(regions)
|
||
else:
|
||
self.insert_countries(countries)
|
||
self.insert_regions(regions)
|
||
|
||
self.stdout.write(self.style.SUCCESS('Successfully imported world travel data'))
|
||
except Exception as e:
|
||
self.stdout.write(self.style.ERROR(f'Error importing data: {str(e)}'))
|
||
|
||
def sync_countries(self, countries):
|
||
country_codes = [code for _, code, _ in countries]
|
||
Country.objects.exclude(country_code__in=country_codes).delete()
|
||
|
||
for name, country_code, continent in countries:
|
||
country, created = Country.objects.update_or_create(
|
||
country_code=country_code,
|
||
defaults={'name': name, 'continent': continent}
|
||
)
|
||
if created:
|
||
saveCountryFlag(country_code)
|
||
self.stdout.write(f'Inserted {name} into worldtravel countries')
|
||
else:
|
||
saveCountryFlag(country_code)
|
||
self.stdout.write(f'Updated {name} in worldtravel countries')
|
||
|
||
def sync_regions(self, regions):
|
||
region_ids = [id for id, _, _, _ in regions]
|
||
Region.objects.exclude(id__in=region_ids).delete()
|
||
|
||
for id, name, name_en, country_code in regions:
|
||
country = Country.objects.get(country_code=country_code)
|
||
region, created = Region.objects.update_or_create(
|
||
id=id,
|
||
defaults={'name': name, 'country': country, 'name_en': name_en}
|
||
)
|
||
if created:
|
||
self.stdout.write(f'Inserted {name} into worldtravel regions')
|
||
setGeometry(id)
|
||
else:
|
||
setGeometry(id)
|
||
self.stdout.write(f'Updated {name} in worldtravel regions')
|
||
|
||
def insert_countries(self, countries):
|
||
for name, country_code, continent in countries:
|
||
country, created = Country.objects.get_or_create(
|
||
country_code=country_code,
|
||
defaults={'name': name, 'continent': continent}
|
||
)
|
||
if created:
|
||
saveCountryFlag(country_code)
|
||
|
||
self.stdout.write(f'Inserted {name} into worldtravel countries')
|
||
else:
|
||
saveCountryFlag(country_code)
|
||
self.stdout.write(f'{name} already exists in worldtravel countries')
|
||
|
||
def insert_regions(self, regions):
|
||
for id, name, name_en, country_code in regions:
|
||
country = Country.objects.get(country_code=country_code)
|
||
region, created = Region.objects.get_or_create(
|
||
id=id,
|
||
defaults={'name': name, 'country': country, 'name_en': name_en}
|
||
)
|
||
if created:
|
||
self.stdout.write(f'Inserted {name} into worldtravel regions')
|
||
setGeometry(id)
|
||
else:
|
||
setGeometry(id)
|
||
self.stdout.write(f'{name} already exists in worldtravel regions')
|