# coding=utf-8 import os import django import sys import simplejson as json sys.path.append("/var/www/projects/lms/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from __migrate.post_fixtures import show_progress from storage.models import FormatIndex, Storage, CroppedImage _fixture = json.load(open('fixtures/storage.json')) user_pk = 1 findex = [] storage = [] crimg = [] def new_index(model, key, obj): if str(key) in pk_map[model]: return obj.objects.get(id=pk_map[model][str(key)]) return None # Пример записи маршрута pk_map = json.load(open('pk_maps.json')) if 'storage.formatindex' not in pk_map.keys(): pk_map['storage.formatindex'] = {} if 'storage.storage' not in pk_map.keys(): pk_map['storage.storage'] = {} if 'storage.croppedimage' not in pk_map.keys(): pk_map['storage.croppedimage'] = {} for i in _fixture: if i['model'] == 'storage.formatindex': findex.append(i) elif i['model'] == 'storage.storage': storage.append(i) elif i['model'] == 'storage.croppedimage': crimg.append(i) print u'\nFormatIndex' _now = 0 big_len = len(findex) show_progress(big_len, _now) for i in findex: f = FormatIndex.objects.create( f_type=i['fields']['f_type'], name=i['fields']['name'], description=i['fields']['description'], icon=i['fields']['icon'], icon_class=i['fields']['icon_class'], ) pk_map['storage.formatindex'][str(i['pk'])] = str(f.id) _now += 1 show_progress(big_len, _now) print u'\nStorage' _now = 0 big_len = len(storage) show_progress(big_len, _now) for i in storage: s = Storage.objects.create( loaded=i['fields']['loaded'], name=i['fields']['name'], key=i['fields']['key'], original=i['fields']['original'], f_format=new_index('storage.formatindex', i['fields']['f_format'], FormatIndex), description=i['fields']['description'], date=i['fields']['date'], error=i['fields']['error'], ) pk_map['storage.storage'][str(i['pk'])] = str(s.id) _now += 1 show_progress(big_len, _now) print u'\nCroppedImg' _now = 0 big_len = len(crimg) show_progress(big_len, _now) for i in crimg: c = CroppedImage.objects.create( original=new_index('storage.storage', i['fields']['original'], Storage), big=i['fields']['big'], middle=i['fields']['middle'], small=i['fields']['small'], cropped=i['fields']['cropped'], ) pk_map['storage.croppedimage'][str(i['pk'])] = str(c.id) _now += 1 show_progress(big_len, _now) json.dump(pk_map, open('pk_maps.json', 'w'))