Exemple #1
0
    def action_multi_init(self, request, *args, **kwargs):
        course_record_id_list = request.POST.getlist('pk')
        class_id = kwargs.get('class_id')
        class_object = models.ClassList.objects.filter(id=class_id).first()
        if not class_object:
            return HttpResponse('班级不存在')
        student_object_list = class_object.student_set.all()

        for course_record_id in course_record_id_list:
            # 判断上课记录是否合法
            course_record_object = models.CourseRecord.objects.filter(
                id=course_record_id, class_object_id=class_id).first()
            if not course_record_object:
                continue

            # 判断此上课记录的考勤记录是否已经存在
            study_record_exists = models.StudyRecord.objects.filter(
                course_record=course_record_object).exists()
            if study_record_exists:
                continue

            # 为每个学生在该天创建考勤记录
            study_record_object_list = [
                models.StudyRecord(student_id=stu.id,
                                   course_record_id=course_record_id)
                for stu in student_object_list
            ]

            models.StudyRecord.objects.bulk_create(study_record_object_list,
                                                   batch_size=50)
Exemple #2
0
    def multi_init(self, request):
        """
        自定义执行批量初始化方法
        :param request: 
        :return: 
        """
        # 上课记录ID列表
        pk_list = request.POST.getlist('pk')

        # 上课记录对象
        record_list = models.CourseRecord.objects.filter(id__in=pk_list)
        for record in record_list:
            # day1,day2,day3
            # record.class_obj # 关联的班级
            exists = models.StudyRecord.objects.filter(
                course_record=record).exists()
            if exists:
                continue

            student_list = models.Student.objects.filter(
                class_list=record.class_obj)
            bulk_list = []
            for student in student_list:
                # 为每一个学生创建dayn的学习记录
                bulk_list.append(
                    models.StudyRecord(student=student, course_record=record))
            models.StudyRecord.objects.bulk_create(bulk_list)
Exemple #3
0
    def multi_init(self):
        # 批量初始化学习记录
        course_record_ids = self.request.POST.get('ids', [])

        for course_record_id in course_record_ids:
            # 根据一个课程ID生成学习记录
            course_record_obj = models.CourseRecord.objects.filter(
                pk=course_record_id).first()
            # 找当前班级的所有学生
            students = course_record_obj.re_class.customer_set.filter(
                status='studying')

            # for student in students:
            # 	models.StudyRecord.objects.get_or_create(student=student,course_record_id=course_record_id)
            # 	models.StudyRecord.objects.update_or_create(student=student,course_record_id=course_record_id)

            # 批量插入
            study_record_list = []
            for student in students:
                if not models.StudyRecord.objects.filter(
                        student=student,
                        course_record_id=course_record_id).exists():
                    study_record_list.append(
                        models.StudyRecord(student=student,
                                           course_record_id=course_record_id))

            models.StudyRecord.objects.bulk_create(study_record_list)
Exemple #4
0
    def initCourseRecord(self, request, queryset):
        print("初始化上课记录")
        print(queryset[0].from_class.enrollment_set.all())

        bulk_objs = []
        for enroll_obj in queryset[0].from_class.enrollment_set.all():
            # models.StudyRecord.objects.get_or_create(
            #     student=enroll_obj,
            #     course_record=queryset[0],
            #     attendence=0,
            #     score=0,
            # )
            bulk_objs.append(
                models.StudyRecord(
                    student=enroll_obj,
                    course_record=queryset[0],
                    attendence=0,
                    score=0,
                ))
        try:
            models.StudyRecord.objects.bulk_create(bulk_objs)  #批量创建,要么成功,要么出错
        except:
            return HttpResponse("批量初始化学习记录失败,请检查该节课是否已有对应的学习记录")
        return redirect("/admin/crm/studyrecord/?course_record_id__exact=%s" %
                        queryset[0].id)
Exemple #5
0
    def initialize_studyrecords(self, request, queryset):
        print('--->initialize_studyrecords', self, request, queryset)
        if len(queryset) > 1:  #不能选多个班级
            return HttpResponse("只能选择一个班级")

        # print(queryset[0].from_class.enrollment_set.all())
        new_obj_list = []
        for enroll_obj in queryset[0].from_class.enrollment_set.all(
        ):  #找到此课程所有报了名的学生
            # models.StudyRecord.objects.get_or_create(     #get_or_create()有就获取,没有就创建
            #     student = enroll_obj,
            #     course_record = queryset[0] ,
            #     attendance = 0 ,
            #     score = 0 ,
            # ) #但这样新增效率低!!

            new_obj_list.append(
                models.StudyRecord(
                    student=enroll_obj,
                    course_record=queryset[0],  #课程记录
                    attendence=0,  #状态,迟到还是早退
                    score=0,  #分数
                ))

        try:
            models.StudyRecord.objects.bulk_create(new_obj_list)  #批量创建(高效)
        except Exception:
            return HttpResponse("批量初始化学习记录失败,请检查该节课是否已经有对应的学习记录")
        return redirect("/king_admin/crm/studyrecord/?course_record=%s" %
                        queryset[0].id)
Exemple #6
0
    def multi_init(self):
        # 根据当前提交的课程记录Id批量初识化学生的学习记录

        course_ids = self.request.POST.getlist('id')

        course_obj_list = models.CourseRecord.objects.filter(id__in=course_ids)

        for course_obj in course_obj_list:
            # 查询当前课程记录代表的班级的学生
            all_students = course_obj.re_class.customer_set.filter(
                status='studying')

            student_list = []

            for student in all_students:
                # models.StudyRecord.objects.create(course_record=course_obj, student=student)

                # obj = models.StudyRecord(course_record=course_obj, student=student)
                # obj.save()

                student_list.append(
                    models.StudyRecord(course_record=course_obj,
                                       student=student))

            models.StudyRecord.objects.bulk_create(student_list)
Exemple #7
0
 def multi_init(self):
     # 根据当前提交的课程记录ID批量初始化学生的学校记录,也就是将这个班的各个班的人都批量导入
     course_ids = self.request.POST.getlist('id')
     print('course_ids', course_ids)
     course_obj_list = models.CourseRecord.objects.filter(id__in=course_ids)
     print('multi_init')
     # 循环将每个班级遍历  课程对象列表
     for course_obj in course_obj_list:
         # 查询当前课程记录代表的班级学生
         all_students = course_obj.re_class.customer_set.filter(
             status='studying')
         student_list = []
         for student in all_students:
             # 一个一个加有两种方法(sql语句一条一条执行)
             # 方法一:
             # models.StudyRecord.objects.create(course_record=course_obj)
             # 方法二:
             # obj = models.StudyRecord(course_record=course_obj, student=student)
             # obj.save()
             print('student', student)
             # 终极一条sql语句解决
             student_list.append(
                 models.StudyRecord(course_record=course_obj,
                                    student=student))
         # 将列表中的值批量插入(一条sql语句))
         models.StudyRecord.objects.bulk_create(student_list)
Exemple #8
0
    def initialize_studyrecords(self, request, queryset):  #制定功能
        print()
        if len(queryset) > 1:
            return HttpResponse("同时只能选择一个班级!")
        print(queryset[0].from_class.enrollment_set.all())
        new_obj_list = []  #用于批量创建  事务
        for enrll_obj in queryset[0].from_class.enrollment_set.all():  #创建学习记录
            #     models.StudyRecord.objects.get_or_create(
            #         student=enrll_obj,#对应学员
            #         course_record=queryset[0],
            #         attendance=0,#签到状态,默认签到,
            #         score=0,#成绩
            #     )

            new_obj_list.append(
                models.StudyRecord(
                    student=enrll_obj,  #对应学员
                    course_record=queryset[0],
                    attendance=0,  #签到状态,默认签到,
                    score=0,  #成绩
                ))
        try:
            models.StudyRecord.objects.bulk_create(new_obj_list)  #批量创建
        except Exception as e:
            return HttpResponse('批量创建失败,本节课可能有相应的上课记录')
        return redirect("/admin/crm/studyrecord/?course_record__id__exact=%s" %
                        queryset[0].id)  #学习记录
Exemple #9
0
    def init_study_record(self):
        # 获取要初始化学习记录的课程ID
        ids = self.request.POST.getlist('id')
        # 获取要初始化学习记录的课程对象
        course_obj_list = models.CourseRecord.objects.filter(id__in=ids)

        for course_obj in course_obj_list:
            # 查找每个课程对应的班级中的学生, 且状态为学习中
            student_list = course_obj.re_class.customer_set.filter(
                status='studying')

            # 要生成的学习记录
            study_record_list = []

            for student in student_list:
                # # 方案一
                # models.StudyRecord.objects.create(course_record=course_obj, student=student)
                # # 方案二
                # study_record_obj = models.StudyRecord(course_record=course_obj, student=student)
                # study_record_obj.save()
                # 方案三
                study_record_list.append(
                    models.StudyRecord(course_record=course_obj,
                                       student=student))

            # 批量生成, 这样就只执行一次sql语句, 提高效率
            models.StudyRecord.objects.bulk_create(study_record_list)
Exemple #10
0
    def multi_init(self):
        ## 批量创建学习记录
        # 课程记录的ID
        course_record_ids = self.request.POST.getlist('pk')

        # 查询出每一条课程记录对象
        course_records = models.CourseRecord.objects.filter(
            pk__in=course_record_ids)
        for course_record in course_records:
            # 通过班  去找客户, 通过学生的status状态判断 是学生还是客户.
            stutends = course_record.re_class.customer_set.all().filter(
                status='studying')
            #
            # for student in stutends:
            #     models.StudyRecord.objects.create(course_record=course_record,student=student)

            # 批量插入
            ### 多次重复插入 . 就会报错 ~~ ~~~ 已解决. 添加到列标签前,查一遍
            study_record_list = []
            for student in stutends:
                if not models.StudyRecord.objects.filter(
                        course_record=course_record, student=student).exists():
                    study_record_list.append(
                        models.StudyRecord(course_record=course_record,
                                           student=student))

            # bulk_create 需要一个列表 , batch_size 一次限制插入的条数
            # bulk_create 空列表,也不报错
            models.StudyRecord.objects.bulk_create(study_record_list,
                                                   batch_size=10)
Exemple #11
0
def init_studyecord(request):
    """
    批量初始化上课记录
    :param request:
    :return:
    """
    ret={"status":False,"data":None,"error":None}
    if request.method=="POST":

        course_record_ids=request.POST.getlist("course_record_ids")
        bulk_objs=[]
        for course_record_id in course_record_ids:
            course_record_obj=models.CourseRecord.objects.get(id=course_record_id)
            for enroll_obj in course_record_obj.from_class.enrollment_set.all():

                bulk_objs.append(models.StudyRecord(
                    student=enroll_obj,
                    course_record_id=course_record_id,
                    attendence=0,
                    score=0,
                ))

        try:
            models.StudyRecord.objects.bulk_create(bulk_objs)#批量创建,要么成功,要么出错
            ret["status"]=True
            ret["data"]="批量初始化学习记录成功"
        except:
            ret["error"]="批量初始化学习记录失败,请检查该节课是否已有对应的学习记录"
        return HttpResponse(json.dumps(ret))
Exemple #12
0
    def initialize_studyrecords(self, request, queryset):
        print('--->initialize_studyrecords', self, request, queryset)
        if len(queryset) > 1:
            return HttpResponse("只能选择一个班级")

        print(queryset[0].from_class.enrollment_set.all())
        new_obj_list = []
        for enroll_obj in queryset[0].from_class.enrollment_set.all():
            # models.StudyRecord.objects.get_or_create(
            #     student = enroll_obj,
            #     course_record = queryset[0] ,
            #     attendance = 0 ,
            #     score = 0 ,
            # )

            new_obj_list.append(
                models.StudyRecord(
                    student=enroll_obj,
                    course_record=queryset[0],
                    attendance=0,
                    score=0,
                ))

        try:

            models.StudyRecord.objects.bulk_create(new_obj_list)  #批量创建

        except Exception as e:
            return HttpResponse("批量初始化学习记录失败,请检查该节课是否已经有对应的学习记录")
        return redirect("/admin/crm/studyrecord/?course_record__id__exact=%s" %
                        queryset[0].id)
Exemple #13
0
    def multi_init(self, requset):
        '''
        初始化学生上课记录
        :param requset:
        :return:
        '''
        pk_list = requset.POST.getlist('pk')
        print(pk_list)
        with transaction.atomic():
            for pk in pk_list:
                course_obj = models.CourseRecord.objects.filter(pk=pk).first()
                studyrecord_obj = models.StudyRecord.objects.filter(
                    course_record=course_obj)
                if not studyrecord_obj:
                    student_list = models.Student.objects.filter(
                        class_list=course_obj.class_obj.pk)

                    bulk_list = []
                    for stu in student_list:
                        bulk_list.append(
                            models.StudyRecord(course_record=course_obj,
                                               record="checked",
                                               student_id=stu.pk))
                    models.StudyRecord.objects.bulk_create(bulk_list)
                else:
                    print("%s已经初始化了" % course_obj)
Exemple #14
0
    def initialize_studyrecords(self, request, queryset):
        print('-------------->initialize_studyrecords', self, request,
              queryset)
        if len(queryset) > 1:
            return HttpResponse('只能选择一个班级')

        print(queryset[0].from_class.enrollment_set.all())
        try:
            for enroll_obj in queryset[0].from_class.enrollment_set.all():
                # models.StudyRecord.objects.get_or_create(
                #     student= enroll_obj,
                #     course_record= queryset[0],
                #     attendance= 0,
                #     score= 0,
                # )
                new_obj_list = []
                new_obj_list.append(
                    models.StudyRecord(
                        student=enroll_obj,
                        course_record=queryset[0],
                        attendance=0,
                        score=0,
                    ))
            models.StudyRecord.objects.bulk_create(new_obj_list)  #批量创建
        except Exception as e:
            return HttpResponse("已有本节课记录,不能再创建,请检查学习记录表!!")

        return redirect("/king_admin/crm/studyrecord/?course_record=%s" %
                        queryset[0].id)
Exemple #15
0
    def multi_init(self, request):
        """
        批量初始化
        :param request:
        :return:
        """
        id_list = request.POST.getlist('pk')  # [1,2]
        # 找到选中上课记录的班级
        # 找到班级下所有人
        # 为每个人生成一条学习记录
        for nid in id_list:
            record_obj = models.CourseRecord.objects.get(id=nid)
            stu_list = models.Student.objects.filter(
                class_list=record_obj.class_obj)

            exists = models.StudyRecord.objects.filter(
                course_record=record_obj).exists()
            if exists:
                continue

            study_record_list = []
            for stu in stu_list:
                study_record_list.append(
                    models.StudyRecord(course_record=record_obj, student=stu))

            models.StudyRecord.objects.bulk_create(study_record_list)
Exemple #16
0
 def multi_init(self):
     course_record_id_list = self.request.POST.getlist('pk')
     course_record = models.CourseRecord.objects.filter(pk__in=course_record_id_list)
     for one_course_record in course_record:
         all_student = one_course_record.re_class.customer_set.all().filter(status='studying')
         study_record_list = []
         for student in all_student:
             study_record_list.append(models.StudyRecord(student=student, course_record=one_course_record))
         models.StudyRecord.objects.bulk_create(study_record_list, batch_size=10)
Exemple #17
0
 def patch_studyRecord(self,request,queryset):
     '''批量生产学生上课记录'''
     temp = []
     for courseRecord in queryset:
         students = models.Student.objects.filter(class_list=courseRecord.class_obj)
         for student in students:
             obj = models.StudyRecord(student=student,course_record=courseRecord)
             temp.append(obj)
     models.StudyRecord.objects.bulk_create(temp)
Exemple #18
0
def homework_detail(request,customer_id,course_record_id):
    course_record_obj = models.CourseRecord.objects.get(id=course_record_id)
    upload_dir = "%s%s/%s/%s" % (settings.BASE_HOMEWORK_DIR,
                                 customer_id,
                                 course_record_obj.course.id,
                                 course_record_id)
    # print("upload dir",upload_dir)
    if not os.path.isdir(upload_dir):
        os.makedirs(upload_dir, exist_ok=True)

    response_dic = {'files':{}}

    if request.method == "POST":
        if request.FILES:

            print("files:",request.FILES)

            for k,file_obj in request.FILES.items():
                if len(os.listdir(upload_dir)) < 6:
                    with open('%s/%s' %(upload_dir,file_obj.name), 'wb+') as destination:
                        for chunk in file_obj.chunks():
                            destination.write(chunk)
                else:
                    response_dic['error'] = "can only upload no more than 5 files."
            # for filename in os.listdir(upload_dir):
            #     abs_file = '%s/%s' %(upload_dir,filename)
            #     file_create_time = time.strftime("%Y-%m-%d %H:%M:%S" ,
            #                                      time.gmtime(os.path.getctime(abs_file)))
            #     response_dic['files'][filename] = {'size':os.path.getsize(abs_file)/1000,
            #                                    'ctime':file_create_time}
            #
            get_uploaded_fileinfo(response_dic, upload_dir)

            return HttpResponse(json.dumps(response_dic))

    study_record_obj = models.StudyRecord.objects.filter(student_id=customer_id,course_record_id=course_record_id)

    #get uploaded file dic
    get_uploaded_fileinfo(response_dic, upload_dir)

    if study_record_obj:
        study_record_obj = study_record_obj[0]
    else: #此时这个学生还没有本节课的学习记录,但需要学习记录方能交作业,所以在这里创建一条学习纪录为他
        study_record_obj = models.StudyRecord(
            student_id = customer_id,
            course_record_id = course_record_id,
            record='checked',
            score = 0
        )
        study_record_obj.save()


    return render(request,'stu/homework_detail.html',
                  {'study_record_obj':study_record_obj,
                   'course_record_obj':course_record_obj,
                   'uploaded_files':response_dic})
Exemple #19
0
 def patch_studyrecord(self, request, queryset):
     #找到当前课程下的所有学生进行创建记录
     temp = []
     for course_record in queryset:
         student_list = models.Student.objects.filter(
             class_list__id=course_record.class_obj.pk)
         for student in student_list:
             obj = models.StudyRecord(student=student,
                                      course_record=course_record)
             temp.append(obj)
     models.StudyRecord.objects.bulk_create(temp)
Exemple #20
0
 def study_record_init(self):
     course_record_ids = self.request.POST.get(
         'pk') if self.request.POST.get('pk') else []
     course_record_obj_list = models.CourseRecord.objects.filter(
         pk__in=course_record_ids)
     for course_record_obj in course_record_obj_list:
         all_students = course_record_obj.re_class.customer_set.all(
         ).filter(status='studying')
         study_record_list = []
         for student in all_students:
             study_record_list.append(
                 models.StudyRecord(course_record=course_record_obj,
                                    student=student))
         models.StudyRecord.objects.bulk_create(study_record_list)  # 批量创建数据
Exemple #21
0
    def multi_init(self):
        """
        根据当前提交的课程id批量初始化学生的学习记录
        :return:
        """
        course_ids = self.request.POST.getlist('id')
        course_obj_list = models.CourseRecord.objects.filter(id__in=course_ids)

        for course in course_obj_list:
            all_student = course.re_class.customer_set.filter(status='studying')
            student_list = []
            for student in all_student:
                student_list.append(models.StudyRecord(course_record=course, student=student))
            models.StudyRecord.objects.bulk_create(student_list)
Exemple #22
0
 def multi_init(self):
     course_record_id = self.request.POST.get('edit_name')
     course_record_objs = models.CourseRecord.objects.filter(
         pk__in=course_record_id)
     for course_record in course_record_objs:
         stu_list = []
         for stu in course_record.re_class.customer_set.filter(
                 status='studying'):
             # models.StudyRecord.objects.create(course_record_id=course_record_id, student=stu)
             # 批量插入
             stu_list.append(
                 models.StudyRecord(course_record=course_record,
                                    student=stu))
         models.StudyRecord.objects.bulk_create(stu_list)
Exemple #23
0
 def mul_init(self, request):
     pk_list = request.POST.getlist("pk")
     record_list = models.CourseRecord.objects.filter(id__in=pk_list)
     for record in record_list:
         exists = models.StudyRecord.objects.filter(
             course_record=record).exists()
         if exists:
             continue
         student_list = models.Student.objects.filter(
             class_list=record.class_obj)
         bulk_list = []
         for student in student_list:
             bulk_list.append(
                 models.StudyRecord(student=student, course_record=record))
         models.StudyRecord.objects.bulk_create(bulk_list)
Exemple #24
0
def homework_detail(request, customer_id, course_record_id):
    course_record_obj = models.CourseRecord.objects.get(id=course_record_id)
    upload_dir = "%s%s/%s/%s" % (settings.BASE_HOMEWORK_DIR,
                                 customer_id,
                                 course_record_obj.course.id,
                                 course_record_id)
    # print("upload dir",upload_dir)
    if not os.path.isdir(upload_dir):
        os.makedirs(upload_dir, exist_ok=True)

    response_dic = {'files': {}}

    if request.method == "POST":
        if request.FILES:

            print("files:", request.FILES)

            for k, file_obj in request.FILES.items():
                if len(os.listdir(upload_dir)) < 6:
                    with open('%s/%s' % (upload_dir, file_obj.name), 'wb+') as destination:
                        for chunk in file_obj.chunks():
                            destination.write(chunk)
                else:
                    response_dic['error'] = "can only upload no more than 5 files."

            get_uploaded_fileinfo(response_dic, upload_dir)

            return HttpResponse(json.dumps(response_dic))

    study_record_obj = models.StudyRecord.objects.filter(student_id=customer_id, course_record_id=course_record_id)

    get_uploaded_fileinfo(response_dic, upload_dir)

    if study_record_obj:
        study_record_obj = study_record_obj[0]
    else:
        study_record_obj = models.StudyRecord(
            student_id=customer_id,
            course_record_id=course_record_id,
            record='checked',
            score=0
        )
        study_record_obj.save()

    return render(request, 'stu/homework_detail.html',
                  {'study_record_obj': study_record_obj,
                   'course_record_obj': course_record_obj,
                   'uploaded_files': response_dic})
Exemple #25
0
 def initialize_study_records(self, request, queryset):
     if len(queryset) > 1:
         return HttpResponse("只能选择一个班级")
     new_obj_list = []
     for enroll_obj in queryset[0].from_class.enrollment_set.all():
         new_obj_list.append(
             models.StudyRecord(student=enroll_obj,
                                course_record=queryset[0],
                                attendance=0,
                                score=0))
     try:
         models.StudyRecord.objects.bulk_create(new_obj_list)
     except Exception as e:
         return HttpResponse("批量初始化学习记录失败,请检查该节课是否已经有对应的学习记录!")
     return redirect("/king_admin/crm/studyrecord/?course_record={}".format(
         queryset[0].id))
Exemple #26
0
 def create_all_study_record(self,request,querySets):
     if len(querySets)>1:
         return HttpResponse("不能同时创建超过1个班级的上课记录")
     create_obj_list = []
     print("--------------",querySets[0].from_class.enrollment_set.all())
     for enroll_obj in querySets[0].from_class.enrollment_set.all():
         create_obj_list.append(models.StudyRecord(
             student = enroll_obj,
             course_record = querySets[0],
             attendance = 0,
             score = 0,
         ))
     try:
         models.StudyRecord.objects.bulk_create(create_obj_list)
     except Exception as e:
         return HttpResponse("批量初始化学习记录失败 请检查该节课是否已经有对应的学习记录")
     return redirect('/king_admin/crm/StudyRecord/?course_record=%s'%(querySets[0].id))
Exemple #27
0
    def multi_init(self):
        course_record_ids = self.request.POST.getlist('id')
        course_record_obj_list = models.CourseRecord.objects.filter(
            id__in=course_record_ids)

        for course_record_obj in course_record_obj_list:

            # 根据课程记录创建学习记录
            all_students = course_record_obj.re_class.customer_set.all(
            ).filter(status='studying')

            list1 = []
            for student in all_students:
                list1.append(
                    models.StudyRecord(course_record=course_record_obj,
                                       student=student))
            models.StudyRecord.objects.bulk_create(list1)
Exemple #28
0
    def initialize_studyrecords(self, request, queryset):#方式二,具有事务特性,错误则回滚数据
        if len(queryset) > 1:
            return HttpResponse("只能选择一个班级")

        new_obj_list = []
        for student_obj in queryset[0].class_grade.student_set.all():
            new_obj_list.append(models.StudyRecord(
                student = student_obj,
                course_record = queryset[0],
            ))

        try:
            models.StudyRecord.objects.bulk_create(new_obj_list) # bulk_create:Django提供批量处理,具事务特性,错误则回滚

        except Exception as e:#studyrecord设置了联合唯一,创建同样数据会报错
            return HttpResponse("批量初始化学习记录失败,请检查该节课是否已经有对应的学习记录")
        return redirect("/kingadmin/crm/studyrecord/?course_record__id__exact=%s"%queryset[0].id )
Exemple #29
0
 def mutil_init(self, request):
     '''初始化的目的是为每一个同学创建记录'''
     pk_list = request.POST.getlist("pk")  #['1', '2'] 用户发过来的上课记录的id
     record_list = models.CourseRecord.objects.filter(
         id__in=pk_list)  #数据库中查出的上课记录对象
     for record in record_list:
         print(type(record), "record")  #python(6期) day2 对象
         exists = models.StudyRecord.objects.filter(
             course_record=record).exists()
         if exists:
             continue
         student_list = models.Student.objects.filter(
             class_list=record.class_obj)  #查出这个班的所有的学生
         bluk_list = []
         for stu in student_list:
             bluk_list.append(
                 models.StudyRecord(student=stu, course_record=record))
         models.StudyRecord.objects.bulk_create(bluk_list)
Exemple #30
0
    def post(self, request, class_id):
        course_record_ids = request.POST.getlist('ids', [])
        for course_record_id in course_record_ids:
            course_record_obj = models.CourseRecord.objects.filter(
                pk=course_record_id).first()
            students = course_record_obj.re_class.customer_set.filter(
                status='studying')
            study_record_list = []
            for student in students:
                if not models.StudyRecord.objects.filter(
                        student=student,
                        course_record_id=course_record_id).exists():
                    study_record_list.append(
                        models.StudyRecord(student=student,
                                           course_record_id=course_record_id))

            models.StudyRecord.objects.bulk_create(study_record_list)
        return self.get(request, class_id)