第一步: copy 文件, 设置路径
把 brands 和 goods 文件夹 copy 到以下路径, 并配置好相应字段的 upload to
第二步: 导入 GoodsCategory
准备独立使用 models 模块, 来一次性导入大量的 "goods.models.GoodsCategory" 数据
为什么不先导入 Goods? 因为 Goods 里有 GoodsCategory 的外键
先把源文件 category_data.py 和 product_data.py 复制到如下路径, 然后手动新建 import_category_data 和 import_product_data
import_category_data.py
- # 独立使用 django 的 model 模块
- import sys,os
- # from users.models import UserProfile
- # 如果在配置 DJANGO_SETTINGS_MODULE 之前导入了与 django 有关的模块, 会报错, 见下面的截图:
- # "You must either define the environment variable DJANGO_SETTINGS_MODULE"
- # 把项目根路径加到系统环境变量中去
- pwd=os.path.dirname(os.path.abspath(__file__))
- sys.path.append(pwd+"../")
- # 导入 settings 文件
- os.environ.setdefault("DJANGO_SETTINGS_MODULE","MxShop.settings")
- # django 初始化
- import django
- django.setup()
- from goods.models import GoodsCategory
- from db_tools.data.category_data import row_data
- for lev1_cat in row_data:
- lev1_instance = GoodsCategory()
- lev1_instance.name = lev1_cat["name"]
- lev1_instance.code = lev1_cat["code"]
- lev1_instance.category_type = 1
- lev1_instance.save()
- for lev2_cat in lev1_cat["sub_categorys"]:
- lev2_instance = GoodsCategory()
- lev2_instance.name = lev2_cat["name"]
- lev2_instance.code = lev2_cat["code"]
- lev2_instance.category_type = 2
- lev2_instance.parent_category = lev1_instance
- lev2_instance.save()
- for lev3_cat in lev2_cat["sub_categorys"]:
- lev3_instance = GoodsCategory()
- lev3_instance.name = lev3_cat["name"]
- lev3_instance.code = lev3_cat["code"]
- lev3_instance.category_type = 3
- lev3_instance.parent_category = lev2_instance
- lev3_instance.save()
接下来执行该文件, 就可以发现数据库中自动填充了很多数据, 一共 120 条, 一级类目有 8 个
第三步: 导入 Goods
准备独立使用 models 模块, 来一次性导入
----- over ------
来源: http://www.bubuko.com/infodetail-3344079.html