You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
#!/bin/env python2
|
|
# coding=utf-8
|
|
|
|
import os
|
|
from json import loads
|
|
import django
|
|
#from django.db.utils import IntegrityError
|
|
|
|
|
|
if __name__ == "__main__":
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djing.settings")
|
|
django.setup()
|
|
from abonapp.models import Abon, AbonGroup
|
|
|
|
f = open('dump.json', 'r')
|
|
dat = f.readlines()
|
|
f.close()
|
|
|
|
dat = loads(dat[0])
|
|
for dt in dat['groups']:
|
|
try:
|
|
grp = AbonGroup.objects.get(title=dt['gname'])
|
|
except AbonGroup.DoesNotExist:
|
|
grp = AbonGroup(title=dt['gname'])
|
|
grp.save()
|
|
dt['obj'] = grp
|
|
|
|
for dt in dat['users']:
|
|
grp = filter(lambda gr: dt['grp']==gr['gid'], dat['groups'])
|
|
grp = grp[0]['obj'] if len(grp)>0 else None
|
|
try:
|
|
abon = Abon.objects.get(username=dt['name'])
|
|
except Abon.DoesNotExist:
|
|
abon = Abon(username=dt['name'])
|
|
abon.fio = dt['fio']
|
|
abon.telephone=dt['tel']
|
|
abon.address=dt['addr']
|
|
abon.group=grp
|
|
abon.save()
|
|
print abon.username, abon.fio, abon.group
|