def create(request, template_name="oa/teacher_form.html"): roles = Role.objects.all() if request.method == 'POST': form1 = TeacherUserForm(request.POST) is_auto = request.POST.get('signup') is_valid = form1.is_valid() form1_error_list = form1.errors.items() if is_auto == "auto": form1_error_list = [] is_valid = True print is_valid,'v11111111111' form2 = UserProfileForm(request.POST, request.FILES) print form2.errors,'2222222' form3 = PostJobForm(request.POST,user=request.user) print form3.errors,'3333333' error_list = form1_error_list + form2.errors.items() + form3.errors.items() if request.is_ajax(): return helpers.ajax_validate_form_error_list(error_list) if is_valid and form2.is_valid() and form3.is_valid(): #新建用户 teacher = helpers.create_teacher(form1, request) print teacher,'vvvvvvvv' role_pks = request.POST.getlist('role_list') role_list = [r for r in Role.objects.filter(pk__in=role_pks)] if teacher.id: for role in role_list: teacher.user.roles.add(role) form2 = UserProfileForm(request.POST, request.FILES, instance=teacher.user.get_profile()) form2.save() form3 = PostJobForm(request.POST,user=request.user) postjob = form3.save(commit=False) postjob.teacher = teacher postjob.save() messages.success(request, u"教师 %s 已成功创建" % teacher.name) return redirect("oa_teacher_list") else: form1 = TeacherUserForm() form2 = UserProfileForm() form3 = PostJobForm(user=request.user) # form4 = TeachernameForm() ctx = {'form1': form1,'form2': form2,'form3': form3,'roles':roles} ctx.update(csrf(request)) return render(request, template_name, ctx)
def import_view(request): """ """ # 获得导入数据(文件) schools = helpers.get_schools(request.user) template_name="oa/teacher_import.html" roles_xls = request.FILES.get('teachers') try: school_id = request.POST['school'] school = get_object_or_404(School, pk=school_id) except: school = schools[0] imported_num = 0 cache_key = "import_teacher_" + str(school.id) + '_' + str(request.user.id) if request.method == 'POST': data = cache.get(cache_key) if not data: messages.error(request, "您还没有上传文件") return render(request, template_name, {'schools':schools,'school':school,'file_error':"您还没有上传文件"}) for d in data: try: teacher = Teacher.objects.get(name=d['name'],school=school) continue except: teacher = helpers.create_teacher(None, request, school,batch=True) teacher.name = d['name'] teacher.save() profile = teacher.user.profile profile.mobile = d['mobile'] profile.save() imported_num = imported_num + 1 if imported_num: msg = u"成功导入 %(imported_num)s 个 %(role)s" % {'imported_num': imported_num, 'role': '职员'} cache.delete(cache_key) messages.success(request, msg) return render(request, template_name, {'schools':schools,'school':school})