498 lines
22 KiB
Python
498 lines
22 KiB
Python
import json
|
|
import os
|
|
from django.core.management.base import BaseCommand
|
|
from user.models import Region
|
|
|
|
|
|
PROVINCES = [
|
|
("北京市", "110000", "beijing"),
|
|
("天津市", "120000", "tianjin"),
|
|
("河北省", "130000", "hebei"),
|
|
("山西省", "140000", "shanxi"),
|
|
("内蒙古自治区", "150000", "neimenggu"),
|
|
("辽宁省", "210000", "liaoning"),
|
|
("吉林省", "220000", "jilin"),
|
|
("黑龙江省", "230000", "heilongjiang"),
|
|
("上海市", "310000", "shanghai"),
|
|
("江苏省", "320000", "jiangsu"),
|
|
("浙江省", "330000", "zhejiang"),
|
|
("安徽省", "340000", "anhui"),
|
|
("福建省", "350000", "fujian"),
|
|
("江西省", "360000", "jiangxi"),
|
|
("山东省", "370000", "shandong"),
|
|
("河南省", "410000", "henan"),
|
|
("湖北省", "420000", "hubei"),
|
|
("湖南省", "430000", "hunan"),
|
|
("广东省", "440000", "guangdong"),
|
|
("广西壮族自治区", "450000", "guangxi"),
|
|
("海南省", "460000", "hainan"),
|
|
("重庆市", "500000", "chongqing"),
|
|
("四川省", "510000", "sichuan"),
|
|
("贵州省", "520000", "guizhou"),
|
|
("云南省", "530000", "yunnan"),
|
|
("西藏自治区", "540000", "xizang"),
|
|
("陕西省", "610000", "shanxi2"),
|
|
("甘肃省", "620000", "gansu"),
|
|
("青海省", "630000", "qinghai"),
|
|
("宁夏回族自治区", "640000", "ningxia"),
|
|
("新疆维吾尔自治区", "650000", "xinjiang"),
|
|
("台湾省", "710000", "taiwan"),
|
|
("香港特别行政区", "810000", "xianggang"),
|
|
("澳门特别行政区", "820000", "aomen"),
|
|
]
|
|
|
|
CITIES = [
|
|
# 北京
|
|
("北京城区", "110100", "beijing", "110000"),
|
|
# 天津
|
|
("天津城区", "120100", "tianjin", "120000"),
|
|
# 河北
|
|
("石家庄市", "130100", "shijiazhuang", "130000"),
|
|
("唐山市", "130200", "tangshan", "130000"),
|
|
("秦皇岛市", "130300", "qinhuangdao", "130000"),
|
|
("邯郸市", "130400", "handan", "130000"),
|
|
("邢台市", "130500", "xingtai", "130000"),
|
|
("保定市", "130600", "baoding", "130000"),
|
|
("张家口市", "130700", "zhangjiakou", "130000"),
|
|
("承德市", "130800", "chengde", "130000"),
|
|
("沧州市", "130900", "cangzhou", "130000"),
|
|
("廊坊市", "131000", "langfang", "130000"),
|
|
("衡水市", "131100", "hengshui", "130000"),
|
|
# 山西
|
|
("太原市", "140100", "taiyuan", "140000"),
|
|
("大同市", "140200", "datong", "140000"),
|
|
("阳泉市", "140300", "yangquan", "140000"),
|
|
("长治市", "140400", "changzhi", "140000"),
|
|
("晋城市", "140500", "jincheng", "140000"),
|
|
("朔州市", "140600", "shuozhou", "140000"),
|
|
("晋中市", "140700", "jinzhong", "140000"),
|
|
("运城市", "140800", "yuncheng", "140000"),
|
|
("忻州市", "140900", "xinzhou", "140000"),
|
|
("临汾市", "141000", "linfen", "140000"),
|
|
("吕梁市", "141100", "lvliang", "140000"),
|
|
# 内蒙古
|
|
("呼和浩特市", "150100", "huhehaote", "150000"),
|
|
("包头市", "150200", "baotou", "150000"),
|
|
("乌海市", "150300", "wuhai", "150000"),
|
|
("赤峰市", "150400", "chifeng", "150000"),
|
|
("通辽市", "150500", "tongliao", "150000"),
|
|
("鄂尔多斯市", "150600", "eerduosi", "150000"),
|
|
("呼伦贝尔市", "150700", "hulunbeier", "150000"),
|
|
("巴彦淖尔市", "150800", "bayannaoer", "150000"),
|
|
("乌兰察布市", "150900", "wulanchabu", "150000"),
|
|
("兴安盟", "152200", "xingan", "150000"),
|
|
("锡林郭勒盟", "152500", "xilinguole", "150000"),
|
|
("阿拉善盟", "152900", "alashan", "150000"),
|
|
# 辽宁
|
|
("沈阳市", "210100", "shenyang", "210000"),
|
|
("大连市", "210200", "dalian", "210000"),
|
|
("鞍山市", "210300", "anshan", "210000"),
|
|
("抚顺市", "210400", "fushun", "210000"),
|
|
("本溪市", "210500", "benxi", "210000"),
|
|
("丹东市", "210600", "dandong", "210000"),
|
|
("锦州市", "210700", "jinzhou", "210000"),
|
|
("营口市", "210800", "yingkou", "210000"),
|
|
("阜新市", "210900", "fuxin", "210000"),
|
|
("辽阳市", "211000", "liaoyang", "210000"),
|
|
("盘锦市", "211100", "panjin", "210000"),
|
|
("铁岭市", "211200", "tieling", "210000"),
|
|
("朝阳市", "211300", "chaoyang", "210000"),
|
|
("葫芦岛市", "211400", "huludao", "210000"),
|
|
# 吉林
|
|
("长春市", "220100", "changchun", "220000"),
|
|
("吉林市", "220200", "jilin", "220000"),
|
|
("四平市", "220300", "siping", "220000"),
|
|
("辽源市", "220400", "liaoyuan", "220000"),
|
|
("通化市", "220500", "tonghua", "220000"),
|
|
("白山市", "220600", "baishan", "220000"),
|
|
("松原市", "220700", "songyuan", "220000"),
|
|
("白城市", "220800", "baicheng", "220000"),
|
|
("延边朝鲜族自治州", "222400", "yanbian", "220000"),
|
|
# 黑龙江
|
|
("哈尔滨市", "230100", "haerbin", "230000"),
|
|
("齐齐哈尔市", "230200", "qiqihaer", "230000"),
|
|
("鸡西市", "230300", "jixi", "230000"),
|
|
("鹤岗市", "230400", "hegang", "230000"),
|
|
("双鸭山市", "230500", "shuangyashan", "230000"),
|
|
("大庆市", "230600", "daqing", "230000"),
|
|
("伊春市", "230700", "yichun", "230000"),
|
|
("佳木斯市", "230800", "jiamusi", "230000"),
|
|
("七台河市", "230900", "qitaihe", "230000"),
|
|
("牡丹江市", "231000", "mudanjiang", "230000"),
|
|
("黑河市", "231100", "heihe", "230000"),
|
|
("绥化市", "231200", "suihua", "230000"),
|
|
("大兴安岭地区", "232700", "daxinganling", "230000"),
|
|
# 上海
|
|
("上海城区", "310100", "shanghai", "310000"),
|
|
# 江苏
|
|
("南京市", "320100", "nanjing", "320000"),
|
|
("无锡市", "320200", "wuxi", "320000"),
|
|
("徐州市", "320300", "xuzhou", "320000"),
|
|
("常州市", "320400", "changzhou", "320000"),
|
|
("苏州市", "320500", "suzhou", "320000"),
|
|
("南通市", "320600", "nantong", "320000"),
|
|
("连云港市", "320700", "lianyungang", "320000"),
|
|
("淮安市", "320800", "huaian", "320000"),
|
|
("盐城市", "320900", "yancheng", "320000"),
|
|
("扬州市", "321000", "yangzhou", "320000"),
|
|
("镇江市", "321100", "zhenjiang", "320000"),
|
|
("泰州市", "321200", "taizhou", "320000"),
|
|
("宿迁市", "321300", "suqian", "320000"),
|
|
# 浙江
|
|
("杭州市", "330100", "hangzhou", "330000"),
|
|
("宁波市", "330200", "ningbo", "330000"),
|
|
("温州市", "330300", "wenzhou", "330000"),
|
|
("嘉兴市", "330400", "jiaxing", "330000"),
|
|
("湖州市", "330500", "huzhou", "330000"),
|
|
("绍兴市", "330600", "shaoxing", "330000"),
|
|
("金华市", "330700", "jinhua", "330000"),
|
|
("衢州市", "330800", "quzhou", "330000"),
|
|
("舟山市", "330900", "zhoushan", "330000"),
|
|
("台州市", "331000", "taizhou", "330000"),
|
|
("丽水市", "331100", "lishui", "330000"),
|
|
# 安徽
|
|
("合肥市", "340100", "hefei", "340000"),
|
|
("芜湖市", "340200", "wuhu", "340000"),
|
|
("蚌埠市", "340300", "bengbu", "340000"),
|
|
("淮南市", "340400", "huainan", "340000"),
|
|
("马鞍山市", "340500", "maanshan", "340000"),
|
|
("淮北市", "340600", "huaibei", "340000"),
|
|
("铜陵市", "340700", "tongling", "340000"),
|
|
("安庆市", "340800", "anqing", "340000"),
|
|
("黄山市", "341000", "huangshan", "340000"),
|
|
("滁州市", "341100", "chuzhou", "340000"),
|
|
("阜阳市", "341200", "fuyang", "340000"),
|
|
("宿州市", "341300", "suzhou2", "340000"),
|
|
("六安市", "341500", "luan", "340000"),
|
|
("亳州市", "341600", "bozhou", "340000"),
|
|
("池州市", "341700", "chizhou", "340000"),
|
|
("宣城市", "341800", "xuancheng", "340000"),
|
|
# 福建
|
|
("福州市", "350100", "fuzhou", "350000"),
|
|
("厦门市", "350200", "xiamen", "350000"),
|
|
("莆田市", "350300", "putian", "350000"),
|
|
("三明市", "350400", "sanming", "350000"),
|
|
("泉州市", "350500", "quanzhou", "350000"),
|
|
("漳州市", "350600", "zhangzhou", "350000"),
|
|
("南平市", "350700", "nanping", "350000"),
|
|
("龙岩市", "350800", "longyan", "350000"),
|
|
("宁德市", "350900", "ningde", "350000"),
|
|
# 江西
|
|
("南昌市", "360100", "nanchang", "360000"),
|
|
("景德镇市", "360200", "jingdezhen", "360000"),
|
|
("萍乡市", "360300", "pingxiang", "360000"),
|
|
("九江市", "360400", "jiujiang", "360000"),
|
|
("新余市", "360500", "xinyu", "360000"),
|
|
("鹰潭市", "360600", "yingtan", "360000"),
|
|
("赣州市", "360700", "ganzhou", "360000"),
|
|
("吉安市", "360800", "jian", "360000"),
|
|
("宜春市", "360900", "yichun", "360000"),
|
|
("抚州市", "361000", "fuzhou2", "360000"),
|
|
("上饶市", "361100", "shangrao", "360000"),
|
|
# 山东
|
|
("济南市", "370100", "jinan", "370000"),
|
|
("青岛市", "370200", "qingdao", "370000"),
|
|
("淄博市", "370300", "zibo", "370000"),
|
|
("枣庄市", "370400", "zaozhuang", "370000"),
|
|
("东营市", "370500", "dongying", "370000"),
|
|
("烟台市", "370600", "yantai", "370000"),
|
|
("潍坊市", "370700", "weifang", "370000"),
|
|
("济宁市", "370800", "jining", "370000"),
|
|
("泰安市", "370900", "taian", "370000"),
|
|
("威海市", "371000", "weihai", "370000"),
|
|
("日照市", "371100", "rizhao", "370000"),
|
|
("临沂市", "371300", "linyi", "370000"),
|
|
("德州市", "371400", "dezhou", "370000"),
|
|
("聊城市", "371500", "liaocheng", "370000"),
|
|
("滨州市", "371600", "binzhou", "370000"),
|
|
("菏泽市", "371700", "heze", "370000"),
|
|
# 河南
|
|
("郑州市", "410100", "zhengzhou", "410000"),
|
|
("开封市", "410200", "kaifeng", "410000"),
|
|
("洛阳市", "410300", "luoyang", "410000"),
|
|
("平顶山市", "410400", "pingdingshan", "410000"),
|
|
("安阳市", "410500", "anyang", "410000"),
|
|
("鹤壁市", "410600", "hebi", "410000"),
|
|
("新乡市", "410700", "xinxiang", "410000"),
|
|
("焦作市", "410800", "jiaozuo", "410000"),
|
|
("濮阳市", "410900", "puyang", "410000"),
|
|
("许昌市", "411000", "xuchang", "410000"),
|
|
("漯河市", "411100", "luohe", "410000"),
|
|
("三门峡市", "411200", "sanmenxia", "410000"),
|
|
("南阳市", "411300", "nanyang", "410000"),
|
|
("商丘市", "411400", "shangqiu", "410000"),
|
|
("信阳市", "411500", "xinyang", "410000"),
|
|
("周口市", "411600", "zhoukou", "410000"),
|
|
("驻马店市", "411700", "zhumadian", "410000"),
|
|
# 湖北
|
|
("武汉市", "420100", "wuhan", "420000"),
|
|
("黄石市", "420200", "huangshi", "420000"),
|
|
("十堰市", "420300", "shiyan", "420000"),
|
|
("宜昌市", "420500", "yichang", "420000"),
|
|
("襄阳市", "420600", "xiangyang", "420000"),
|
|
("鄂州市", "420700", "ezhou", "420000"),
|
|
("荆门市", "420800", "jingmen", "420000"),
|
|
("孝感市", "420900", "xiaogan", "420000"),
|
|
("荆州市", "421000", "jingzhou", "420000"),
|
|
("黄冈市", "421100", "huanggang", "420000"),
|
|
("咸宁市", "421200", "xianning", "420000"),
|
|
("随州市", "421300", "suizhou", "420000"),
|
|
("恩施土家族苗族自治州", "422800", "enshi", "420000"),
|
|
# 湖南
|
|
("长沙市", "430100", "changsha", "430000"),
|
|
("株洲市", "430200", "zhuzhou", "430000"),
|
|
("湘潭市", "430300", "xiangtan", "430000"),
|
|
("衡阳市", "430400", "hengyang", "430000"),
|
|
("邵阳市", "430500", "shaoyang", "430000"),
|
|
("岳阳市", "430600", "yueyang", "430000"),
|
|
("常德市", "430700", "changde", "430000"),
|
|
("张家界市", "430800", "zhangjiajie", "430000"),
|
|
("益阳市", "430900", "yiyang", "430000"),
|
|
("郴州市", "431000", "chenzhou", "430000"),
|
|
("永州市", "431100", "yongzhou", "430000"),
|
|
("怀化市", "431200", "huaihua", "430000"),
|
|
("娄底市", "431300", "loudi", "430000"),
|
|
("湘西土家族苗族自治州", "433100", "xiangxi", "430000"),
|
|
# 广东
|
|
("广州市", "440100", "guangzhou", "440000"),
|
|
("韶关市", "440200", "shaoguan", "440000"),
|
|
("深圳市", "440300", "shenzhen", "440000"),
|
|
("珠海市", "440400", "zhuhai", "440000"),
|
|
("汕头市", "440500", "shantou", "440000"),
|
|
("佛山市", "440600", "foshan", "440000"),
|
|
("江门市", "440700", "jiangmen", "440000"),
|
|
("湛江市", "440800", "zhanjiang", "440000"),
|
|
("茂名市", "440900", "maoming", "440000"),
|
|
("肇庆市", "441200", "zhaoqing", "440000"),
|
|
("惠州市", "441300", "huizhou", "440000"),
|
|
("梅州市", "441400", "meizhou", "440000"),
|
|
("汕尾市", "441500", "shanwei", "440000"),
|
|
("河源市", "441600", "heyuan", "440000"),
|
|
("阳江市", "441700", "yangjiang", "440000"),
|
|
("清远市", "441800", "qingyuan", "440000"),
|
|
("东莞市", "441900", "dongguan", "440000"),
|
|
("中山市", "442000", "zhongshan", "440000"),
|
|
("潮州市", "445100", "chaozhou", "440000"),
|
|
("揭阳市", "445200", "jieyang", "440000"),
|
|
("云浮市", "445300", "yunfu", "440000"),
|
|
# 广西
|
|
("南宁市", "450100", "nanning", "450000"),
|
|
("柳州市", "450200", "liuzhou", "450000"),
|
|
("桂林市", "450300", "guilin", "450000"),
|
|
("梧州市", "450400", "wuzhou", "450000"),
|
|
("北海市", "450500", "beihai", "450000"),
|
|
("防城港市", "450600", "fangchenggang", "450000"),
|
|
("钦州市", "450700", "qinzhou", "450000"),
|
|
("贵港市", "450800", "guigang", "450000"),
|
|
("玉林市", "450900", "yulin", "450000"),
|
|
("百色市", "451000", "baise", "450000"),
|
|
("贺州市", "451100", "hezhou", "450000"),
|
|
("河池市", "451200", "hechi", "450000"),
|
|
("来宾市", "451300", "laibin", "450000"),
|
|
("崇左市", "451400", "chongzuo", "450000"),
|
|
# 海南
|
|
("海口市", "460100", "haikou", "460000"),
|
|
("三亚市", "460200", "sanya", "460000"),
|
|
("三沙市", "460300", "sansha", "460000"),
|
|
("儋州市", "460400", "danzhou", "460000"),
|
|
("五指山市", "469001", "wuzhishan", "460000"),
|
|
("琼海市", "469002", "qionghai", "460000"),
|
|
("文昌市", "469005", "wenchang", "460000"),
|
|
("万宁市", "469006", "wanning", "460000"),
|
|
("东方市", "469007", "dongfang", "460000"),
|
|
# 重庆
|
|
("重庆城区", "500100", "chongqing", "500000"),
|
|
# 四川
|
|
("成都市", "510100", "chengdu", "510000"),
|
|
("自贡市", "510300", "zigong", "510000"),
|
|
("攀枝花市", "510400", "panzhihua", "510000"),
|
|
("泸州市", "510500", "luzhou", "510000"),
|
|
("德阳市", "510600", "deyang", "510000"),
|
|
("绵阳市", "510700", "mianyang", "510000"),
|
|
("广元市", "510800", "guangyuan", "510000"),
|
|
("遂宁市", "510900", "suining", "510000"),
|
|
("内江市", "511000", "neijiang", "510000"),
|
|
("乐山市", "511100", "leshan", "510000"),
|
|
("南充市", "511300", "nanchong", "510000"),
|
|
("眉山市", "511400", "meishan", "510000"),
|
|
("宜宾市", "511500", "yibin", "510000"),
|
|
("广安市", "511600", "guangan", "510000"),
|
|
("达州市", "511700", "dazhou", "510000"),
|
|
("雅安市", "511800", "yaan", "510000"),
|
|
("巴中市", "511900", "bazhong", "510000"),
|
|
("资阳市", "512000", "ziyang", "510000"),
|
|
("阿坝藏族羌族自治州", "513200", "aba", "510000"),
|
|
("甘孜藏族自治州", "513300", "ganzi", "510000"),
|
|
("凉山彝族自治州", "513400", "liangshan", "510000"),
|
|
# 贵州
|
|
("贵阳市", "520100", "guiyang", "520000"),
|
|
("六盘水市", "520200", "liupanshui", "520000"),
|
|
("遵义市", "520300", "zunyi", "520000"),
|
|
("安顺市", "520400", "anshun", "520000"),
|
|
("毕节市", "520500", "bijie", "520000"),
|
|
("铜仁市", "520600", "tongren", "520000"),
|
|
("黔西南布依族苗族自治州", "522300", "qianxinan", "520000"),
|
|
("黔东南苗族侗族自治州", "522600", "qiandongnan", "520000"),
|
|
("黔南布依族苗族自治州", "522700", "qiannan", "520000"),
|
|
# 云南
|
|
("昆明市", "530100", "kunming", "530000"),
|
|
("曲靖市", "530300", "qujing", "530000"),
|
|
("玉溪市", "530400", "yuxi", "530000"),
|
|
("保山市", "530500", "baoshan", "530000"),
|
|
("昭通市", "530600", "zhaotong", "530000"),
|
|
("丽江市", "530700", "lijiang", "530000"),
|
|
("普洱市", "530800", "puer", "530000"),
|
|
("临沧市", "530900", "lincang", "530000"),
|
|
("楚雄彝族自治州", "532300", "chuxiong", "530000"),
|
|
("红河哈尼族彝族自治州", "532500", "honghe", "530000"),
|
|
("文山壮族苗族自治州", "532600", "wenshan", "530000"),
|
|
("大理白族自治州", "532800", "dali", "530000"),
|
|
("德宏傣族景颇族自治州", "532900", "dehong", "530000"),
|
|
("怒江傈僳族自治州", "533100", "nujiang", "530000"),
|
|
("迪庆藏族自治州", "533300", "diqing", "530000"),
|
|
# 西藏
|
|
("拉萨市", "540100", "lasa", "540000"),
|
|
("日喀则市", "540200", "rikaze", "540000"),
|
|
("昌都市", "540300", "changdu", "540000"),
|
|
("林芝市", "540400", "linzhi", "540000"),
|
|
("山南市", "540500", "shannan", "540000"),
|
|
("那曲市", "540600", "naqu", "540000"),
|
|
("阿里地区", "542500", "ali", "540000"),
|
|
# 陕西
|
|
("西安市", "610100", "xian", "610000"),
|
|
("铜川市", "610200", "tongchuan", "610000"),
|
|
("宝鸡市", "610300", "baoji", "610000"),
|
|
("咸阳市", "610400", "xianyang", "610000"),
|
|
("渭南市", "610500", "weinan", "610000"),
|
|
("延安市", "610600", "yanan", "610000"),
|
|
("汉中市", "610700", "hanzhong", "610000"),
|
|
("榆林市", "610800", "yulin", "610000"),
|
|
("安康市", "610900", "ankang", "610000"),
|
|
("商洛市", "611000", "shangluo", "610000"),
|
|
# 甘肃
|
|
("兰州市", "620100", "lanzhou", "620000"),
|
|
("嘉峪关市", "620200", "jiayuguan", "620000"),
|
|
("金昌市", "620300", "jinchang", "620000"),
|
|
("白银市", "620400", "baiyin", "620000"),
|
|
("天水市", "620500", "tianshui", "620000"),
|
|
("武威市", "620600", "wuwei", "620000"),
|
|
("张掖市", "620700", "zhangye", "620000"),
|
|
("平凉市", "620800", "pingliang", "620000"),
|
|
("酒泉市", "620900", "jiuquan", "620000"),
|
|
("庆阳市", "621000", "qingyang", "620000"),
|
|
("定西市", "621100", "dingxi", "620000"),
|
|
("陇南市", "621200", "longnan", "620000"),
|
|
("临夏回族自治州", "622900", "linxia", "620000"),
|
|
("甘南藏族自治州", "623000", "gannan", "620000"),
|
|
# 青海
|
|
("西宁市", "630100", "xining", "630000"),
|
|
("海东市", "630200", "haidong", "630000"),
|
|
("海北藏族自治州", "632200", "haibei", "630000"),
|
|
("黄南藏族自治州", "632300", "huangnan", "630000"),
|
|
("海南藏族自治州", "632500", "hainan", "630000"),
|
|
("果洛藏族自治州", "632600", "guoluo", "630000"),
|
|
("玉树藏族自治州", "632700", "yushu", "630000"),
|
|
("海西蒙古族藏族自治州", "632800", "haixi", "630000"),
|
|
# 宁夏
|
|
("银川市", "640100", "yinchuan", "640000"),
|
|
("石嘴山市", "640200", "shizuishan", "640000"),
|
|
("吴忠市", "640300", "wuzhong", "640000"),
|
|
("固原市", "640400", "guyuan", "640000"),
|
|
("中卫市", "640500", "zhongwei", "640000"),
|
|
# 新疆
|
|
("乌鲁木齐市", "650100", "wulumuqi", "650000"),
|
|
("克拉玛依市", "650200", "kelamayi", "650000"),
|
|
("吐鲁番市", "650400", "tulufan", "650000"),
|
|
("哈密市", "650500", "hami", "650000"),
|
|
("昌吉回族自治州", "652300", "changji", "650000"),
|
|
("博尔塔拉蒙古自治州", "652700", "boertala", "650000"),
|
|
("巴音郭楞蒙古自治州", "652800", "bayinguoleng", "650000"),
|
|
("阿克苏地区", "652900", "akesu", "650000"),
|
|
("克孜勒苏柯尔克孜自治州", "653000", "kezilesu", "650000"),
|
|
("喀什地区", "653100", "kashi", "650000"),
|
|
("和田地区", "653200", "hetian", "650000"),
|
|
("伊犁哈萨克自治州", "654000", "yili", "650000"),
|
|
("塔城地区", "654200", "tacheng", "650000"),
|
|
("阿勒泰地区", "654300", "aletai", "650000"),
|
|
("石河子市", "659001", "shihezi", "650000"),
|
|
("阿拉尔市", "659002", "alaer", "650000"),
|
|
("图木舒克市", "659003", "tumushuke", "650000"),
|
|
("五家渠市", "659004", "wujiaqu", "650000"),
|
|
("北屯市", "659005", "beitun", "650000"),
|
|
("铁门关市", "659006", "tiemenguan", "650000"),
|
|
("双河市", "659007", "shuanghe", "650000"),
|
|
("可克达拉市", "659008", "kekedala", "650000"),
|
|
("昆玉市", "659009", "kunyu", "650000"),
|
|
]
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = '导入全国省市区地区数据'
|
|
|
|
def handle(self, *args, **options):
|
|
count = 0
|
|
|
|
for name, code, pinyin in PROVINCES:
|
|
_, created = Region.objects.get_or_create(
|
|
code=code,
|
|
defaults={
|
|
'name': name,
|
|
'level': 1,
|
|
'pinyin': pinyin,
|
|
'parent': None,
|
|
'sort_order': 0,
|
|
}
|
|
)
|
|
if created:
|
|
count += 1
|
|
|
|
for name, code, pinyin, parent_code in CITIES:
|
|
parent = Region.objects.filter(code=parent_code, level=1).first()
|
|
_, created = Region.objects.get_or_create(
|
|
code=code,
|
|
defaults={
|
|
'name': name,
|
|
'level': 2,
|
|
'pinyin': pinyin,
|
|
'parent': parent,
|
|
'sort_order': 0,
|
|
}
|
|
)
|
|
if created:
|
|
count += 1
|
|
|
|
self.stdout.write(self.style.SUCCESS(f'成功导入 {count} 条省级/市级数据'))
|
|
|
|
# 导入区县级数据
|
|
self.import_districts()
|
|
|
|
def import_districts(self):
|
|
"""从JSON文件导入区县级数据"""
|
|
json_path = os.path.join(os.path.dirname(__file__), 'data', 'districts.json')
|
|
if not os.path.exists(json_path):
|
|
self.stdout.write(self.style.WARNING(f'区县级数据文件不存在: {json_path},跳过区县级导入'))
|
|
return
|
|
|
|
with open(json_path, 'r', encoding='utf-8') as f:
|
|
districts = json.load(f)
|
|
|
|
count = 0
|
|
for item in districts:
|
|
parent = Region.objects.filter(code=item['parent_code'], level=2).first()
|
|
if not parent:
|
|
continue
|
|
_, created = Region.objects.get_or_create(
|
|
code=item['code'],
|
|
defaults={
|
|
'name': item['name'],
|
|
'level': 3,
|
|
'pinyin': item.get('pinyin', ''),
|
|
'parent': parent,
|
|
'sort_order': 0,
|
|
}
|
|
)
|
|
if created:
|
|
count += 1
|
|
|
|
self.stdout.write(self.style.SUCCESS(f'成功导入 {count} 条区县级数据'))
|