45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
|
|
from django.core.management.base import BaseCommand
|
||
|
|
from apps.regions.models import Region
|
||
|
|
|
||
|
|
|
||
|
|
class Command(BaseCommand):
|
||
|
|
help = 'Seed Chinese provinces data'
|
||
|
|
|
||
|
|
# 中国 34 个省级行政区
|
||
|
|
PROVINCES = [
|
||
|
|
# 直辖市
|
||
|
|
'北京市', '天津市', '上海市', '重庆市',
|
||
|
|
# 省
|
||
|
|
'河北省', '山西省', '辽宁省', '吉林省', '黑龙江省',
|
||
|
|
'江苏省', '浙江省', '安徽省', '福建省', '江西省',
|
||
|
|
'山东省', '河南省', '湖北省', '湖南省', '广东省',
|
||
|
|
'海南省', '四川省', '贵州省', '云南省', '陕西省',
|
||
|
|
'甘肃省', '青海省', '台湾省',
|
||
|
|
# 自治区
|
||
|
|
'内蒙古自治区', '广西壮族自治区', '西藏自治区',
|
||
|
|
'宁夏回族自治区', '新疆维吾尔自治区',
|
||
|
|
# 特别行政区
|
||
|
|
'香港特别行政区', '澳门特别行政区',
|
||
|
|
]
|
||
|
|
|
||
|
|
def handle(self, *args, **options):
|
||
|
|
created_count = 0
|
||
|
|
skipped_count = 0
|
||
|
|
|
||
|
|
for province_name in self.PROVINCES:
|
||
|
|
obj, created = Region.objects.get_or_create(
|
||
|
|
name=province_name,
|
||
|
|
level='province',
|
||
|
|
parent=None,
|
||
|
|
)
|
||
|
|
if created:
|
||
|
|
created_count += 1
|
||
|
|
self.stdout.write(self.style.SUCCESS(f'✓ Created: {province_name}'))
|
||
|
|
else:
|
||
|
|
skipped_count += 1
|
||
|
|
self.stdout.write(f'- Skipped (exists): {province_name}')
|
||
|
|
|
||
|
|
self.stdout.write(self.style.SUCCESS(
|
||
|
|
f'\n✅ Done! Created: {created_count}, Skipped: {skipped_count}'
|
||
|
|
))
|