import csv import os import sys import django sys.path.append("../") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from courses.api import InApiTeacher from django.contrib.auth import get_user_model from courses.models import Course, Lesson, Topic, Demand, LessonDemand from storage.models import File if __name__ == '__main__': Topic.objects.all().delete() # with open('./course/course.csv') as user_csv: # user_reader = csv.DictReader(user_csv) # for row in user_reader: # row = dict(row) # teachers = row.pop('teachers', None).split("[")[1].split("]")[0].split(", ") # course, _is_create = Course.objects.get_or_create(**row) # # try: # for teacher in teachers: # teacher = teacher.replace("\'", "") # if teacher: # teacher = get_user_model().objects.get(email=teacher).out_key # InApiTeacher.add_teacher(course.slug, teacher) # # except get_user_model().DoesNotExist: # print('Плохо') with open('./course/old_new_id.csv', 'w') as write_id_csv: writer = csv.writer(write_id_csv) writer.writerow(['old_id', 'new_id']) with open('./course/vertex.csv') as vertex_csv: t_sort = 0 l_sort = 0 vertex_reader = csv.DictReader(vertex_csv) for row in vertex_reader: row = dict(row) model_type = row.pop('type', None) description = row.pop('description', None) title = row.pop('title', None) pk = row.pop('id', None) materials = [] try: m = row.pop('materials', None) if m: materials = [File.objects.get(id=i).key for i in m.split("[")[1].split("]")[0].split(", ")] except ValueError: pass if model_type == 'topic': t_sort += 1 course = Course.objects.get(slug=row.pop('course', None)) Topic.objects.create( id=pk, icon=row.pop('icon', None), course=course, description=description, title=title, sort=t_sort, ) else: topic_id = row.pop('topic', None) l_sort += 1 topic = Topic.objects.get(id=topic_id) small_vertex = Lesson.objects.create( video=row.pop('video', None), material_tokens=materials, topic=topic, free=row['free'], description=description, title=title, sort=l_sort, ) writer.writerow([pk, small_vertex.token]) if model_type == 'task': LessonDemand.objects.create( lesson=small_vertex, demand=Demand.objects.get(name="Стандартные требования"), )