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.5 KiB

import os, sys, django, csv, json
sys.path.append("../")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
django.setup()
from django.contrib.auth import get_user_model
from access.models.other import Account
if __name__ == '__main__':
with open('./access/users.csv') as user_csv:
user_reader = csv.DictReader(user_csv)
for row in user_reader:
try:
row = dict(row)
try:
row['role_list'] = [row['role_list'].split("\'")[1]]
except IndexError:
row['role_list'] = []
get_user_model().objects.get_or_create(**row)
except ValueError as e:
if str(e) == 'The given email must be set':
print(e)
else:
raise e
with open('./access/account.csv') as account_csv:
account_reader = csv.DictReader(account_csv)
for row in account_reader:
row = dict(row)
try:
acc = Account.objects.get(owner=get_user_model().objects.get(id=row['owner']))
acc.phone = row['phone'] if row['phone'] and len(row['phone']) < 16 else None
acc.city = row['city'] if row['city'] else None
acc.photo = row['photo']
acc.d_day = row['d_day'] if row['d_day'] else None
acc.save()
except (Account.DoesNotExist, get_user_model().DoesNotExist):
pass