226 lines
13 KiB
Python
226 lines
13 KiB
Python
from django.core.management.base import BaseCommand
|
||
from django.utils import timezone
|
||
from datetime import timedelta
|
||
from regions.models import Region, ModeratorApplication
|
||
from users.models import User
|
||
from content.models import Article
|
||
from services.models import FeaturedService
|
||
|
||
|
||
class Command(BaseCommand):
|
||
help = '导入示例城市数据'
|
||
|
||
def handle(self, *args, **options):
|
||
self.stdout.write('开始导入示例数据...')
|
||
|
||
# 创建示例用户
|
||
user, _ = User.objects.get_or_create(
|
||
username='demo',
|
||
defaults={
|
||
'email': 'demo@citymanual.com',
|
||
'is_verified': True,
|
||
}
|
||
)
|
||
user.set_password('demo123')
|
||
user.save()
|
||
|
||
# 创建省级区域
|
||
provinces_data = [
|
||
{'name': '北京市', 'code': '110000', 'description': '中华人民共和国首都,全国政治中心、文化中心、国际交往中心、科技创新中心。'},
|
||
{'name': '上海市', 'code': '310000', 'description': '中国最大的经济中心和港口城市,国际金融中心,国际贸易中心。'},
|
||
{'name': '广东省', 'code': '440000', 'description': '中国经济最发达的省份之一,改革开放的前沿阵地。'},
|
||
{'name': '浙江省', 'code': '330000', 'description': '中国东南沿海省份,经济发达,民营经济活跃。'},
|
||
{'name': '四川省', 'code': '510000', 'description': '中国西南地区重要省份,天府之国,美食之都。'},
|
||
{'name': '陕西省', 'code': '610000', 'description': '中华文明重要发祥地,十三朝古都所在地,历史文化底蕴深厚。'},
|
||
]
|
||
|
||
provinces = []
|
||
for prov_data in provinces_data:
|
||
province, created = Region.objects.get_or_create(
|
||
name=prov_data['name'],
|
||
defaults={
|
||
'level': 'province',
|
||
'code': prov_data['code'],
|
||
'description': prov_data['description'],
|
||
'is_active': True,
|
||
}
|
||
)
|
||
provinces.append(province)
|
||
if created:
|
||
self.stdout.write(f'✓ 创建省份:{province.name}')
|
||
|
||
# 创建市级区域
|
||
cities_data = [
|
||
{'name': '广州市', 'parent': '广东省', 'code': '440100', 'description': '广东省省会,国家中心城市,国际商贸中心。'},
|
||
{'name': '深圳市', 'parent': '广东省', 'code': '440300', 'description': '经济特区,科技创新中心,中国硅谷。'},
|
||
{'name': '杭州市', 'parent': '浙江省', 'code': '330100', 'description': '浙江省省会,电子商务之都,风景秀丽。'},
|
||
{'name': '宁波市', 'parent': '浙江省', 'code': '330200', 'description': '副省级市,计划单列市,重要的港口城市。'},
|
||
{'name': '成都市', 'parent': '四川省', 'code': '510100', 'description': '四川省省会,天府之国核心,美食之都。'},
|
||
{'name': '绵阳市', 'parent': '四川省', 'code': '510700', 'description': '四川省第二大城市,中国科技城。'},
|
||
{'name': '西安市', 'parent': '陕西省', 'code': '610100', 'description': '陕西省省会,十三朝古都,世界历史名城。'},
|
||
{'name': '咸阳市', 'parent': '陕西省', 'code': '610400', 'description': '中国第一个封建帝国秦朝的都城所在地。'},
|
||
]
|
||
|
||
cities = []
|
||
for city_data in cities_data:
|
||
parent = Region.objects.filter(name=city_data['parent']).first()
|
||
if parent:
|
||
city, created = Region.objects.get_or_create(
|
||
name=city_data['name'],
|
||
defaults={
|
||
'level': 'city',
|
||
'parent': parent,
|
||
'code': city_data['code'],
|
||
'description': city_data['description'],
|
||
'is_active': True,
|
||
}
|
||
)
|
||
cities.append(city)
|
||
if created:
|
||
self.stdout.write(f'✓ 创建城市:{city.name}')
|
||
|
||
# 创建示例文章
|
||
articles_data = [
|
||
{
|
||
'title': '北京故宫游览完全攻略',
|
||
'content': '故宫,旧称紫禁城,是中国明清两代的皇家宫殿,位于北京中轴线的中心。故宫以三大殿为中心,占地面积约 72 万平方米,建筑面积约 15 万平方米,有大小宫殿七十多座,房屋九千余间。是世界上现存规模最大、保存最为完整的木质结构古建筑之一。\n\n游览建议:\n1. 最佳游览时间:春秋两季\n2. 建议游览时长:3-4 小时\n3. 必游景点:太和殿、乾清宫、御花园\n4. 门票:旺季 60 元,淡季 40 元',
|
||
'region_name': '北京市',
|
||
'content_type': 'tourism',
|
||
},
|
||
{
|
||
'title': '上海外滩历史与现状',
|
||
'content': '外滩位于上海市黄浦区的黄浦江畔,即外黄浦滩,为中国历史文化街区。1844 年(清道光廿四年)起,外滩这一带被划为英国租界,成为上海十里洋场的真实写照,也是旧上海租界区以及整个上海近代城市开始的起点。\n\n外滩全长 1.5 千米,南起延安东路,北至苏州河上的外白渡桥,东面即黄浦江,西面是历史风格建筑群。',
|
||
'region_name': '上海市',
|
||
'content_type': 'history',
|
||
},
|
||
{
|
||
'title': '广州早茶文化指南',
|
||
'content': '广州早茶是广州饮食文化的重要组成部分,也是岭南文化的重要体现。广州人饮早茶,不仅是品尝美食,更是一种社交方式和生活方式。\n\n经典茶点:\n- 虾饺:晶莹剔透,鲜美弹牙\n- 烧卖:皮薄馅足,肉香四溢\n- 肠粉:滑嫩爽口,酱汁鲜美\n- 叉烧包:甜咸适中,松软可口\n\n推荐茶楼:陶陶居、广州酒家、莲香楼',
|
||
'region_name': '广州市',
|
||
'content_type': 'culture',
|
||
},
|
||
{
|
||
'title': '深圳科技创新发展报告',
|
||
'content': '深圳作为中国改革开放的窗口和经济特区,40 多年来从一个小渔村发展成为国际化创新型城市。深圳拥有华为、腾讯、大疆等众多知名科技企业,被誉为"中国硅谷"。\n\n2025 年深圳 PCT 国际专利申请量连续多年居全国城市首位,战略性新兴产业增加值占 GDP 比重超过 40%。',
|
||
'region_name': '深圳市',
|
||
'content_type': 'city_info',
|
||
},
|
||
{
|
||
'title': '杭州西湖十景详解',
|
||
'content': '西湖十景是杭州西湖最具代表性的十个景点,形成于南宋时期。每个景点都有其独特的自然风光和文化内涵。\n\n十景包括:\n1. 苏堤春晓\n2. 曲院风荷\n3. 平湖秋月\n4. 断桥残雪\n5. 花港观鱼\n6. 柳浪闻莺\n7. 三潭印月\n8. 双峰插云\n9. 雷峰夕照\n10. 南屏晚钟',
|
||
'region_name': '杭州市',
|
||
'content_type': 'tourism',
|
||
},
|
||
{
|
||
'title': '成都美食地图',
|
||
'content': '成都,被联合国教科文组织授予"美食之都"称号,是中国乃至世界的美食天堂。川菜以其麻、辣、鲜、香的特色闻名世界。\n\n必吃美食:\n- 火锅:麻辣鲜香,回味无穷\n- 串串香:成都特色,街头美食\n- 麻婆豆腐:经典川菜,麻辣鲜香\n- 夫妻肺片:凉拌菜经典\n- 担担面:传统面食\n\n美食街区:锦里、宽窄巷子、春熙路',
|
||
'region_name': '成都市',
|
||
'content_type': 'life',
|
||
},
|
||
{
|
||
'title': '西安兵马俑参观指南',
|
||
'content': '秦始皇兵马俑博物馆位于西安市临潼区,是中国第一个封建皇帝秦始皇的陵墓陪葬坑,被誉为"世界第八大奇迹"。\n\n参观信息:\n- 开放时间:8:30-18:00\n- 门票:120 元\n- 建议游览:2-3 小时\n- 最佳季节:春秋两季\n\n兵马俑坑共有三个,其中一号坑最大,展示了完整的军阵布局。',
|
||
'region_name': '西安市',
|
||
'content_type': 'tourism',
|
||
},
|
||
]
|
||
|
||
for article_data in articles_data:
|
||
region = Region.objects.filter(name=article_data['region_name']).first()
|
||
if region:
|
||
article, created = Article.objects.get_or_create(
|
||
title=article_data['title'],
|
||
defaults={
|
||
'content': article_data['content'],
|
||
'region': region,
|
||
'content_type': article_data['content_type'],
|
||
'author': user,
|
||
'moderator_status': 'approved',
|
||
'moderator_reviewed_at': timezone.now(),
|
||
'ai_status': 'approved',
|
||
'ai_reviewed_at': timezone.now(),
|
||
'publish_status': 'published',
|
||
}
|
||
)
|
||
if created:
|
||
self.stdout.write(f'✓ 创建文章:{article.title}')
|
||
|
||
# 创建示例特色服务
|
||
services_data = [
|
||
{
|
||
'name': '全聚德烤鸭店 (北京)',
|
||
'description': '中华老字号,创建于 1864 年,以挂炉烤鸭闻名。全聚德烤鸭以其色泽红润、肉质肥而不腻、外脆里嫩的特点著称。',
|
||
'region_name': '北京市',
|
||
'category': 'food',
|
||
'address': '北京市东城区前门大街 32 号',
|
||
'price_range': '人均 150-300 元',
|
||
},
|
||
{
|
||
'name': '上海东方明珠塔',
|
||
'description': '上海标志性建筑,高 468 米,集观光、餐饮、娱乐、购物于一体。登上观光层可俯瞰整个上海市区。',
|
||
'region_name': '上海市',
|
||
'category': 'tourism',
|
||
'address': '上海市浦东新区陆家嘴世纪大道 1 号',
|
||
'price_range': '门票 199 元起',
|
||
},
|
||
{
|
||
'name': '广州塔 (小蛮腰)',
|
||
'description': '广州地标建筑,高 600 米,中国第一高塔。设有观光层、摩天轮、极速云霄等游乐项目。',
|
||
'region_name': '广州市',
|
||
'category': 'tourism',
|
||
'address': '广州市海珠区阅江西路 222 号',
|
||
'price_range': '门票 150 元起',
|
||
},
|
||
{
|
||
'name': '杭州楼外楼',
|
||
'description': '百年老字号餐厅,创建于 1848 年,以杭帮菜闻名。招牌菜包括西湖醋鱼、龙井虾仁、叫花童鸡等。',
|
||
'region_name': '杭州市',
|
||
'category': 'food',
|
||
'address': '杭州市西湖区孤山路 30 号',
|
||
'price_range': '人均 200-400 元',
|
||
},
|
||
{
|
||
'name': '成都宽窄巷子',
|
||
'description': '成都著名历史文化街区,由宽巷子、窄巷子、井巷子组成。集美食、购物、文化体验于一体。',
|
||
'region_name': '成都市',
|
||
'category': 'tourism',
|
||
'address': '成都市青羊区长顺上街 127 号',
|
||
'price_range': '免费开放',
|
||
},
|
||
{
|
||
'name': '西安大唐不夜城',
|
||
'description': '以盛唐文化为背景的主题街区,夜景璀璨,有各种表演、美食、文创店铺,是西安夜生活的代表。',
|
||
'region_name': '西安市',
|
||
'category': 'entertainment',
|
||
'address': '西安市雁塔区曲江新区',
|
||
'price_range': '免费开放',
|
||
},
|
||
]
|
||
|
||
for service_data in services_data:
|
||
region = Region.objects.filter(name=service_data['region_name']).first()
|
||
if region:
|
||
service, created = FeaturedService.objects.get_or_create(
|
||
name=service_data['name'],
|
||
defaults={
|
||
'description': service_data['description'],
|
||
'region': region,
|
||
'category': service_data['category'],
|
||
'address': service_data.get('address', ''),
|
||
'price_range': service_data.get('price_range', ''),
|
||
'submitter': user,
|
||
'moderator_status': 'approved',
|
||
'moderator_reviewed_at': timezone.now(),
|
||
'ai_status': 'approved',
|
||
'ai_reviewed_at': timezone.now(),
|
||
'publish_status': 'published',
|
||
}
|
||
)
|
||
if created:
|
||
self.stdout.write(f'✓ 创建服务:{service.name}')
|
||
|
||
self.stdout.write(self.style.SUCCESS('\n✅ 示例数据导入完成!'))
|
||
self.stdout.write('\n测试账号:')
|
||
self.stdout.write(' 用户名:demo')
|
||
self.stdout.write(' 密码:demo123')
|