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
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
|
|
|