from django.core.management.base import BaseCommand from meals.models import Dish # (菜名, 菜系, 配料明细, 蛋白质g, 脂肪g, 热量kcal) SAMPLE_DISHES = { 'meat': [ ('可乐鸡翅', '家常菜', '鸡翅2只', 10.4, 12.1, 196), ('奥尔良烤翅', '家常菜', '烤翅2只', 13.3, 16.2, 213), ('红烧三角油方塞肉', '家常菜', '三角油方1只', 4.0, 8.5, 129), ('牛心菜炒五花肉片', '家常菜', '牛心菜85g五花肉片15g', 4.0, 10.4, 124), ('五花肉烧百叶结', '家常菜', '五花肉85g百叶结20g', 13.0, 28.0, 340), ('火山石烤肠', '家常菜', '烤肠1根', 5.0, 15.0, 160), ('肉糜蒸蛋', '家常菜', '肉糜65g鸡蛋25g', 15.0, 12.0, 171), ('蚝油牛肉片', '家常菜', '牛肉片85g洋葱50g', 17.6, 9.9, 179), ('原味鸡块', '家常菜', '鸡块2块', 13.3, 8.6, 132), ('青椒茭白肉丝', '家常菜', '青椒5g茭白75g肉丝15g', 4.0, 4.2, 90), ('蒜香骨', '家常菜', '肋排100g', 12.8, 19.3, 230), ('番茄牛腩', '家常菜', '牛腩80g番茄70g', 16.6, 9.5, 161), ('土豆烧鸡块', '家常菜', '鸡块100g土豆60g', 20.0, 11.1, 223), ('青椒肉丝', '家常菜', '肉丝70g青椒40g', 14.4, 8.0, 141), ('洋葱炒肉片', '家常菜', '肉片70g洋葱50g', 14.6, 10.7, 174), ('香菇滑鸡', '家常菜', '鸡块110g香菇20g', 20.0, 11.9, 197), ('冬瓜烧排骨', '家常菜', '排骨80g冬瓜60g', 10.5, 14.6, 182), ('家常回锅肉', '家常菜', '五花肉80g蒜苗30g', 8.2, 28.0, 340), ('木须肉', '家常菜', '肉片50g鸡蛋30g木耳10g黄瓜20g', 14.3, 9.7, 154), ('红烧鸡腿', '家常菜', '鸡腿1只', 14.0, 14.0, 230), ('玉米炖排骨', '家常菜', '排骨80g玉米70g', 13.0, 14.3, 244), ('啤酒鸭', '家常菜', '鸭块120g青椒30g', 18.9, 26.7, 322), ('宫保鸡丁', '川菜', '鸡丁80g花生米20g', 20.0, 16.7, 254), ('鱼香肉丝', '川菜', '肉丝70g笋丝30g', 14.8, 10.0, 192), ('辣子鸡丁', '川菜', '鸡丁100g干辣椒10g', 20.0, 10.2, 188), ('水煮肉片', '川菜', '肉片90g豆芽40g', 18.8, 15.2, 219), ('酸菜鱼', '川菜', '鱼片100g酸菜50g', 17.6, 7.1, 146), ('回锅肉', '川菜', '五花肉85g蒜苗25g', 8.6, 28.0, 340), ('蚂蚁上树', '川菜', '粉丝50g肉末30g', 5.8, 6.7, 250), ('鱼香茄子煲', '川菜', '茄子100g肉末25g', 5.6, 8.2, 148), ('红烧肉', '本帮菜', '五花肉100g', 9.5, 28.0, 340), ('糖醋排骨', '本帮菜', '肋排100g', 12.8, 19.3, 265), ('红烧狮子头', '本帮菜', '肉糜80g马蹄20g', 14.6, 14.6, 236), ('油面筋塞肉', '本帮菜', '油面筋2只肉馅50g', 15.8, 16.0, 233), ('酱鸭', '本帮菜', '鸭腿150g', 20.0, 28.0, 340), ('葱油鸡', '本帮菜', '鸡腿150g葱油10g', 20.0, 26.5, 340), ('熏鱼', '本帮菜', '草鱼块100g', 16.6, 8.2, 140), ('百叶结烧肉', '本帮菜', '五花肉80g百叶结30g', 14.9, 28.0, 340), ('红烧基围虾', '江浙菜', '基围虾3-4只', 7.4, 5.3, 117), ('白灼虾', '江浙菜', '基围虾4只', 7.4, 2.3, 90), ('清蒸狮子头', '江浙菜', '肉糜80g荸荠20g', 14.6, 11.6, 174), ('西湖醋鱼', '江浙菜', '草鱼块120g', 19.9, 9.2, 163), ('东坡肉', '江浙菜', '五花肉90g', 8.6, 28.0, 340), ('小炒黄牛肉', '湘菜', '牛肉片80g芹菜30g', 16.4, 11.5, 176), ('农家小炒肉', '湘菜', '五花肉70g青椒50g', 7.2, 28.0, 336), ('辣椒炒肉', '湘菜', '瘦肉60g青椒60g', 12.8, 8.8, 144), ('剁椒鱼块', '湘菜', '鱼块110g剁椒15g', 18.6, 8.9, 157), ('白切鸡', '粤菜', '鸡腿150g姜葱适量', 20.0, 16.5, 252), ('豉汁蒸排骨', '粤菜', '肋排100g豆豉5g', 14.0, 16.7, 214), ('清蒸鲈鱼', '粤菜', '鲈鱼块120g', 19.9, 8.2, 154), ('蒜蓉粉丝蒸虾', '粤菜', '基围虾4只粉丝20g', 7.6, 2.4, 123), ('蜜汁叉烧', '粤菜', '梅花肉100g', 20.0, 13.0, 230), ('蜜汁鸡腿', '粤菜', '鸡腿1只', 14.0, 14.0, 230), ('虾仁滑蛋', '粤菜', '虾仁50g鸡蛋60g', 17.3, 8.7, 160), ('大盘鸡', '西北菜', '鸡块110g土豆60g', 20.0, 11.9, 238), ('孜然羊肉', '西北菜', '羊肉片90g洋葱40g', 18.4, 10.3, 182), ('土豆炖牛肉', '西北菜', '牛肉80g土豆70g', 17.6, 5.5, 172), ('糖醋里脊', '鲁菜', '里脊肉80g', 16.2, 10.0, 194), ('酱爆鸡丁', '鲁菜', '鸡丁90g黄瓜30g', 17.3, 10.5, 211), ('木须肉片', '鲁菜', '肉片50g鸡蛋25g木耳15g', 13.5, 9.2, 145), ('红烧大排', '鲁菜', '猪大排1块', 8.8, 13.8, 198), ('葱爆牛肉', '鲁菜', '牛肉片80g大葱50g', 16.9, 11.6, 184), ], 'veg': [ ('醋溜土豆丝', '家常菜', '土豆丝100g', 2.0, 3.2, 104), ('香菇青菜', '家常菜', '香菇20g青菜80g', 1.8, 3.3, 44), ('酸辣白菜', '家常菜', '白菜100g', 1.5, 3.1, 44), ('清炒莴笋', '家常菜', '莴笋100g', 1.0, 5.1, 60), ('手撕包菜', '家常菜', '包菜100g', 1.5, 3.2, 51), ('韭菜炒蛋', '家常菜', '韭菜80g鸡蛋20g', 4.6, 7.1, 95), ('西红柿炒蛋', '家常菜', '西红柿80g鸡蛋20g', 3.4, 6.9, 90), ('蒜泥茼蒿菜', '家常菜', '茼蒿菜100g', 1.9, 3.3, 51), ('炒什锦', '家常菜', '莴笋60g油面筋10g胡萝卜10g肉片15g', 5.4, 8.0, 106), ('蒜泥杭白菜', '家常菜', '杭白菜100g', 1.8, 3.4, 45), ('虾皮西葫芦', '家常菜', '西葫芦100g虾皮5g', 2.3, 3.3, 54), ('彩椒炒鸡蛋', '家常菜', '彩椒80g鸡蛋20g', 3.5, 6.9, 91), ('麻婆豆腐', '川菜', '豆腐100g肉末15g', 10.0, 8.5, 135), ('鱼香茄子', '川菜', '茄子100g肉末15g', 3.8, 7.0, 130), ('干煸四季豆', '川菜', '四季豆100g肉末10g', 3.8, 6.6, 94), ('虎皮青椒', '川菜', '青椒100g', 1.0, 3.2, 49), ('凉拌木耳', '川菜', '木耳50g黄瓜50g', 1.1, 2.2, 40), ('酸辣藕丁', '川菜', '莲藕100g', 1.9, 3.2, 100), ('红烧素鸡', '本帮菜', '汉康素鸡1块', 8.2, 11.2, 170), ('四喜烤麸', '本帮菜', '烤麸60g香菇15g木耳15g花生10g', 10.0, 9.9, 170), ('油焖茭白', '本帮菜', '茭白100g', 1.2, 5.2, 106), ('葱油蚕豆', '本帮菜', '蚕豆100g', 8.8, 3.4, 131), ('蒜泥西兰花', '江浙菜', '西兰花100g', 4.1, 3.6, 63), ('清炒芦笋', '江浙菜', '芦笋100g', 2.6, 5.2, 67), ('荷兰豆炒藕片', '江浙菜', '荷兰豆50g藕片50g', 2.2, 5.2, 96), ('糖拌西红柿', '江浙菜', '西红柿150g', 1.4, 0.5, 75), ('剁椒蒸豆腐', '湘菜', '豆腐100g剁椒10g', 8.3, 5.8, 103), ('湘味藕片', '湘菜', '莲藕100g', 1.9, 3.2, 100), ('白灼菜心', '粤菜', '菜心100g', 2.8, 2.5, 40), ('蚝油生菜', '粤菜', '生菜100g', 1.3, 3.3, 42), ('蒜蓉空心菜', '粤菜', '空心菜100g', 2.2, 2.3, 38), ('上汤娃娃菜', '粤菜', '娃娃菜100g皮蛋10g', 3.1, 3.4, 50), ('虾皮冬瓜', '粤菜', '冬瓜100g虾皮5g', 1.9, 3.3, 47), ('韭菜炒豆芽', '西北菜', '豆芽80g韭菜20g', 2.2, 5.2, 65), ('番茄炒包菜', '西北菜', '包菜70g番茄30g', 1.3, 5.2, 68), ('蒜香茄子', '西北菜', '茄子100g', 1.1, 5.2, 68), ('红枣南瓜', '面点小吃', '南瓜100g红枣5g', 1.0, 3.1, 64), ('蛋黄焗南瓜', '面点小吃', '南瓜100g咸蛋黄15g', 3.1, 9.6, 118), ('拔丝红薯', '面点小吃', '红薯100g', 1.1, 5.2, 170), ('地三鲜', '鲁菜', '土豆50g茄子50g青椒20g', 1.8, 8.2, 126), ('醋溜白菜', '鲁菜', '白菜100g', 1.5, 3.1, 44), ('蒜蓉菠菜', '鲁菜', '菠菜100g', 2.6, 2.3, 46), ('家常豆腐', '鲁菜', '豆腐100g青椒20g', 8.3, 6.7, 112), ('清炒山药', '鲁菜', '山药100g木耳10g', 2.0, 5.2, 105), ], 'soup': [ ('番茄蛋汤', '家常菜', '西红柿20g鸡蛋10g', 1.5, 2.9, 36), ('冬瓜排骨汤', '家常菜', '冬瓜25g排骨15g', 2.0, 4.2, 49), ('大白菜贡丸汤', '家常菜', '大白菜20g贡丸20g', 2.7, 4.4, 61), ('小排玉米棒胡萝卜汤', '家常菜', '小排20g玉米棒15g胡萝卜5g', 3.2, 5.0, 74), ('紫菜虾皮蛋汤', '家常菜', '紫菜5g虾皮1g鸡蛋10g', 3.0, 3.0, 46), ('汤骨海带丝汤', '家常菜', '汤骨15g海带丝15g', 2.4, 4.3, 53), ('罗宋汤', '家常菜', '卷心菜15g土豆20g西红柿10g红肠5g', 1.5, 2.8, 50), ('番茄菌菇汤', '家常菜', '西红柿20g菌菇20g', 1.5, 2.1, 30), ('丝瓜蛋汤', '家常菜', '丝瓜25g鸡蛋10g', 1.6, 2.9, 37), ('山药排骨汤', '江浙菜', '山药25g排骨15g', 2.4, 4.2, 60), ('莲藕排骨汤', '江浙菜', '莲藕25g排骨15g', 2.4, 4.2, 64), ('鲫鱼豆腐汤', '江浙菜', '鲫鱼20g豆腐15g', 4.6, 3.1, 52), ], 'staple': [ ('米饭', '面点小吃', '米饭150g', 3.9, 0.5, 174), ('黑米饭', '面点小吃', '黑米饭150g', 4.8, 0.9, 183), ('麦片饭', '面点小吃', '麦片饭150g', 6.0, 1.8, 195), ('炒面', '面点小吃', '炒面150g', 6.8, 9.8, 262), ('豆沙包', '面点小吃', '豆沙包30g', 2.5, 0.9, 70), ('杂粮饭', '面点小吃', '杂粮饭150g', 5.2, 1.2, 188), ('奶黄包', '面点小吃', '奶黄包30g', 2.1, 1.2, 70), ('小笼包', '面点小吃', '小笼包3只', 6.8, 3.8, 165), ('花卷', '面点小吃', '花卷50g', 3.5, 0.5, 110), ('黄金馒头', '面点小吃', '馒头50g', 3.5, 0.5, 110), ], } class Command(BaseCommand): help = '写入示例菜品数据(含菜系)' def handle(self, *args, **options): count = 0 for dish_type, items in SAMPLE_DISHES.items(): for name, cuisine, ingredient, protein, fat, calorie in items: _, created = Dish.objects.update_or_create( name=name, defaults={ 'dish_type': dish_type, 'cuisine': cuisine, 'ingredient_detail': ingredient, 'protein': protein, 'fat': fat, 'calorie': calorie, }, ) if created: count += 1 self.stdout.write(self.style.SUCCESS(f'示例菜品已就绪(新增 {count} 道,库中共 {Dish.objects.count()} 道)'))