import csv from django.core.management.base import BaseCommand from django.db import IntegrityError from progress.models import OpenToken class Command(BaseCommand): help = 'Добавляет 1 или нескольких юзеров в указанные группы' def add_arguments(self, parser): parser.add_argument( '--from', type=str, dest='from', help='Файл подгрузки данных' ) parser.add_argument( '--to', type=str, dest='to', help='Файл выгрузки' ) def handle(self, *args, **options): from_path = options['from'] to_path = options['to'] with open(from_path) as f: with open(to_path, 'w') as out_f: fw = csv.writer(out_f) fr = csv.reader(f, delimiter=';') for row in fr: try: token = OpenToken.objects.create( email=row[0].lower(), course_token=row[1], period_days=row[2], ) url = "https://go.skillbox.ru/api/v1/progress/progress_token/?token=%s" % str(token.token) fw.writerow([token.email.lower(), url]) except IntegrityError: pass