# 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 Storage from access.models import User from management.models import News, Comment, Feedback _fixture = json.load(open('fixtures/management.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 'management.news' not in pk_map.keys(): pk_map['management.news'] = {} if 'management.comment' not in pk_map.keys(): pk_map['management.comment'] = {} if 'management.feedback' not in pk_map.keys(): pk_map['management.feedback'] = {} for i in _fixture: if i['model'] == 'management.news': findex.append(i) elif i['model'] == 'management.comment': storage.append(i) elif i['model'] == 'management.feedback': crimg.append(i) print u'\nComments' _now = 0 big_len = len(storage) show_progress(big_len, _now) for i in storage: s = Comment.objects.create( closed=i['fields']['closed'], parent_id=i['fields']['parent_id'], owner=new_index('access.user', i['fields']['owner'], User), text=i['fields']['text'], date=i['fields']['date'], send=i['fields']['send'] ) for key in i['fields']['files']: s.files.add(new_index('storage.storage', key, Storage)) _now += 1 show_progress(big_len, _now) pk_map['management.comment'][str(i['pk'])] = str(s.id) print u'\nFeedBack' _now = 0 big_len = len(crimg) show_progress(big_len, _now) for i in crimg: c = Feedback.objects.create( closed=i['fields']['closed'], name=i['fields']['name'], email=i['fields']['email'], phone=i['fields']['phone'], text=i['fields']['text'], date=i['fields']['date'], send=i['fields']['send'] ) _now += 1 show_progress(big_len, _now) pk_map['management.feedback'][str(i['pk'])] = str(c.id) json.dump(pk_map, open('pk_maps.json', 'w'))