def check_import(request, template_name="oa/teacher_import.html"): schools = helpers.get_schools(request.user) roles_xls = request.FILES.get('teachers') error_list = [] num = 0 try: school_id = request.POST['school'] school = get_object_or_404(School, pk=school_id) except: school = schools[0] if not roles_xls: messages.error(request, _("Files Missing")) return render(request, template_name, {'schools':schools,'school':school}) try: wb = xlrd.open_workbook(file_contents=roles_xls.read()) s = wb.sheet_by_index(0) except xlrd.biffh.XLRDError: messages.error(request, _("Unsupported format, or corrupt file")) return render(request, template_name, {'schools':schools,'school':school}) try: trans_map = { "name": s.cell(0, 0).value, "mobile": s.cell(0, 1).value } except: trans_map = None xls_cache = [] for row in range(s.nrows)[1:]: num = num + 1 try: mobile = mobile = str(int(s.cell(row, 1).value)).strip() except: mobile = '' try: name = s.cell(row, 0).value.strip() except Exception, e: print e messages.error(request, u"导入的 Excel 文件缺少需要的列, 或者该列数据为空.") return redirect('oa_teacher_batch_import') try: teacher = Teacher.objects.get(name=name, user__profile__mobile=mobile,school=school) if teacher and teacher.user.profile.mobile: error_list.append({'name':name,'mobile':mobile,'row':row,'msg':"姓名和手机已存在"}) continue except: pass initial_data = {"name": name, "mobile": mobile} form = TeacherForm(initial_data) if not form.is_valid(): error_list.append({'name':name,'mobile':mobile,'row':row,'msg':form.errors}) continue print name,mobile xls_cache.append({'name':name,'mobile':mobile})
def create(request, template_name="manage/teacher_create.html"): if request.method == 'POST': form = TeacherForm(request.POST, request.FILES) if form.is_valid(): #新建用户 teacher = helpers.create_teacher(form, request) if teacher.id: messages.success(request, u"教师 %s 已成功创建" % teacher.name) return redirect("manage_teacher_view", teacher_id=teacher.id) else: form = TeacherForm() ctx = {'form': form} ctx.update(csrf(request)) return render(request, template_name, ctx)
def update(request, teacher_id, template_name="manage/teacher_update.html"): """update a class""" teacher = get_object_or_404(Teacher, pk=teacher_id) if request.method == 'POST': form = TeacherForm(request.POST, request.FILES, instance=teacher) if form.is_valid(): teacher = form.save() messages.success(request, u"教师 %s 已更新" % teacher.name) return redirect("manage_teacher_view", teacher_id=teacher.id) else: # 表单默认手机 mobile = teacher.getMobile() form = TeacherForm(instance=teacher, initial={'mobile': mobile}) ctx = {"form": form, "teacher": teacher} return render(request, template_name, ctx)