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.
38 lines
1.0 KiB
38 lines
1.0 KiB
#!/bin/env python2
|
|
# coding=utf-8
|
|
|
|
import os
|
|
from json import load
|
|
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
|
|
|
|
with open('dump.json', 'r') as f:
|
|
dat = load(f)
|
|
|
|
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
|