# coding=utf-8 import os import django import sys import simplejson sys.path.append("/var/www/projects/codemy/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from courses.models import Course, CourseTheme, Lesson, Exam, Homework excludes = ['teachers', 'image', 'big_image', 'token', 'public', 'comments', 'materials', ] data = simplejson.load(open('courses_dump.json')) _map = {} results = [] def get_kwargs(fields): result = {} for key, value in fields.items(): print(key, value) if key not in excludes: if key in _map: if type(value) == list: _result = [] for _tmp in value: _result.append(_map[key][_tmp]) value = _result else: value = _map[key][value] if key in _map else value result[key] = value results.append(result) return result def add_in_map(model, key, value): if model not in _map: _map[model] = {} _map[model][key] = value for model in data: if model['model'] == 'courses.course': course, c = Course.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) add_in_map('course', model['pk'], course) elif model['model'] == 'courses.coursetheme': course, c = CourseTheme.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) add_in_map('theme', model['pk'], course) elif model['model'] == 'courses.lesson': course, c = Lesson.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) add_in_map('lesson', model['pk'], course) elif model['model'] == 'courses.exam': course, c = Exam.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) add_in_map('exam', model['pk'], course) elif model['model'] == 'courses.homework': course, c = Homework.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) add_in_map('homework', model['pk'], course) print(results) #print(data[0])