class AddRegisterView(View): ''' 管理员添加人员 ''' @method_decorator(check_perms('dreamer.manager')) def get(self, request): return render( request, "dreamer/form.html", { "form": Register_Form(), "post_url": reverse("dreamer:add"), "title": u"添加报名者资料" }) @method_decorator(check_perms('dreamer.manager')) def post(self, request): form = Register_Form(request.POST) if not form.is_valid(): return render( request, "dreamer/form.html", { "form": form, "post_url": reverse("dreamer:add"), "title": u"添加报名者资料" }) register = form.save() return HttpResponseRedirect( reverse("dreamer:detail") + "?id=" + str(register.id))
class addSlide(View): @method_decorator(check_perms('carousels.slide_add')) def get(self, request): article_id = request.GET.get('id') fast = request.GET.get('fast') if fast == 'True': article = Article.objects.get(id=article_id) slide = Slide() slide.title = article.title slide.describe = article.summary slide.cover = article.cover slide.jumpUrl = '/articles/' + article_id + '/' slide.author = request.user slide.modifier = request.user slide.save() return HttpResponseRedirect(reverse('carousels:manage')) form = SlideForm() return render(request, 'carousels/carousel-form.html', { 'form': form, 'post_url': reverse('carousels:add') }) @method_decorator(check_perms('carousels.slide_add')) def post(self, request): form = SlideForm(request.POST, request.FILES) if not form.is_valid(): return render(request, 'carousels/carousel-form.html', { 'form': form, 'post_url': reverse('carousels:add') }) slide = form.save(commit=False) slide.author = request.user slide.modifier = request.user slide.save() return HttpResponseRedirect(reverse('carousels:manage'))
class ModifyRegisterView(View): @method_decorator(check_perms('dreamer.manager')) def get(self, request): id = request.GET.get("id") register = get_object_or_404(Register, pk=id) form = Register_Form(instance=register) return render( request, "dreamer/form.html", { "form": form, "post_url": reverse("dreamer:modify") + "?id=" + id, "title": u"修改报名者资料" }) @method_decorator(check_perms('dreamer.manager')) def post(self, request): id = request.GET.get("id") register = get_object_or_404(Register, pk=id) form = Register_Form(request.POST, instance=register) if not form.is_valid(): return render( request, "dreamer/form.html", { "form": form, "post_url": reverse("dreamer:modify") + "?id=" + id, "title": u"修改报名者资料" }) register = form.save() return HttpResponseRedirect( reverse("dreamer:detail") + "?id=" + str(register.id))
class ModifySlide(View): @method_decorator(check_perms('carousels.slide_add')) def get(self, request): slide_id = request.GET.get('id') slide = get_object_or_404(Slide, pk=slide_id) form = SlideForm(instance=slide) page = request.GET.get('page') return render( request, 'carousels/carousel-form.html', { 'form': form, 'slide_id': slide_id, 'page': page, 'slide': slide, 'post_url': reverse('carousels:modify') }) @method_decorator(check_perms('carousels.slide_add')) def post(self, request): slide_id = request.GET.get('id') slide = get_object_or_404(Slide, pk=slide_id) form = SlideForm(request.POST, request.FILES, instance=slide) page = request.GET.get('page') if not form.is_valid(): return render( request, 'carousels/carousel-form.html', { 'form': form, 'slide_id': slide_id, 'post_url': reverse('carousels:modify') }) slide = form.save(commit=False) slide.modifier = request.user slide.save() return HttpResponseRedirect( reverse('carousels:manage') + '?page=' + page)
class AddMember(View): @method_decorator(check_perms('member_infor.member_add')) def get(self, request): form = MemberForm() title = u"添加通讯录成员信息" return render(request, 'member_infor/member_form.html', { 'form': form, 'post_url': reverse('member_infor:add'), 'title': title }) @method_decorator(check_perms('member_infor.member_add')) def post(self, request): form = MemberForm(request.POST) title = u"添加通讯录成员信息" if not form.is_valid(): return render( request, 'member_infor/member_form.html', { 'form': form, 'post_url': reverse('member_infor:add'), 'title': title }) member = form.save(commit=False) member.approved = True member.save() return HttpResponseRedirect(reverse('member_infor:manage'))
class ShowAccount(View): """Show a specific account class-base view""" @method_decorator(check_perms('account.student_manager')) def get(self, request, id): student = get_object_or_404(Student, id=id) return render(request, 'master/account-view.html', {'student': student}) @method_decorator(check_perms('account.student_manager')) def put(self, request, id): student = get_object_or_404(Student, id=id) if student.user.has_perm('website_admin'): return spec_json(status='user_is_admin') student.user.is_active = not student.user.is_active student.user.save() return spec_json(status='success') @method_decorator(check_perms('account.student_manager')) def delete(self, request, id): student = get_object_or_404(Student, id=id) if student.user.has_perm('website_admin'): return spec_json(status='user_is_admin') student.user.delete() student.delete() return spec_json(status='success')
class CategoryView(View): @staticmethod def create_category_list(): category_list = Category.objects.all() category_list = {category.name: \ len(Article.objects.filter(category=category, deleted=False)) \ for category in Category.objects.all()} category_list[NO_CATEGORY] = \ len(Article.objects.filter(category=None, deleted=False)) return category_list @method_decorator(check_perms('articles.article_manage')) def get(self, request): category_list = CategoryView.create_category_list() formset = CategoryFormset() return render(request, 'articles/category-form.html', { 'formset': formset, 'category_list': category_list }) @method_decorator(check_perms('articles.article_manage')) def post(self, request): formset = CategoryFormset(request.POST) if not formset.is_valid(): category_list = CategoryView.create_category_list() return render(request, 'articles/category-form.html', { 'formset': formset, 'category_list': category_list }) formset.save() return HttpResponseRedirect(reverse('articles:category'))
class ModifyView(View): @method_decorator(check_perms('articles.article_add')) def get(self, request): article_id = request.GET.get('id') article = get_object_or_404(Article, pk=article_id) form = ArticleForm(instance=article) page = request.GET.get('page') return render( request, 'articles/article-form.html', { 'form': form, 'article_id': article_id, 'page': page, 'post_url': reverse('articles:modify') }) @method_decorator(check_perms('articles.article_add')) def post(self, request): article_id = request.GET.get('id') article = get_object_or_404(Article, pk=article_id) form = ArticleForm(request.POST, request.FILES, instance=article) page = request.GET.get('page') if not form.is_valid(): return render( request, 'articles/article-form.html', { 'form': form, 'article_id': article_id, 'post_url': reverse('articles:modify') }) form.save() return HttpResponseRedirect( reverse('articles:manage') + '?page=' + page)
class ListOrganization(View): @method_decorator(check_perms('organization.organization_manager')) def get(self, request): orgs = Organization.objects.all() normal_orgs = Organization.objects.filter(is_banned=False, is_deleted=False) baned_orgs = Organization.objects.filter(is_banned=True) deleted_orgs = Organization.objects.filter(is_deleted=True) param = { 'orgs': orgs, 'normal_orgs': normal_orgs, 'baned_orgs': baned_orgs, 'deleted_orgs': deleted_orgs } return render(request, 'master/organization-list.html', param) @method_decorator(check_perms('organization.organization_manager')) def post(self, request): form = AddOrganizationForm(request.POST) if not form.is_valid(): messages = form.errors.values() return spec_json(status='errors', messages=messages) name = form.cleaned_data['name'] phone = form.cleaned_data['phone'] Organization.objects.create(name=name, phone=phone) return spec_json(status='success')
class ManageView(generic.View): @classmethod def __create_page(cls, request): paginator = FormsetPaginator(ActivityMessage, ActivityMessage.objects.all(), 5, formset=ActivityMessageFormSet) try: page = paginator.page(request.GET.get('page')) except InvalidPage: page = paginator.page(1) return page @method_decorator(check_perms('account.website_admin')) def get(self, request): return render(request, 'activity/manage.html', {'page': ManageView.__create_page(request)}) @method_decorator(check_perms('account.website_admin')) def post(self, request): formset = ActivityMessageFormSet(request.POST) if not formset.is_valid(): page = ManageView.__create_page(request) page.formset = formset return render(request, 'activity/manage.html', {'page': page}) # 当extra>0的时候,不能循环form来save() formset.save() return HttpResponseRedirect(reverse('activity:index'))
class ShowOrganization(View): @method_decorator(check_perms('organization.organization_manager')) def get(self, request, id): org = get_object_or_404(Organization, id=id) return render(request, 'master/organization-view.html', {'org': org}) @method_decorator(check_perms('organization.organization_manager')) def delete(self, request, id): org = get_object_or_404(Organization, id=id) org.is_deleted = True org.save() return spec_json(status='success')
class AddResourceView(View): @method_decorator(check_perms('szuspeech.manager')) def post(self, request): form = ResourceForm(request.POST, request.FILES) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("szuspeech:manage_list")) return render(request, 'szuspeech/manage-form.html', {'form': form}) @method_decorator(check_perms('szuspeech.manager')) def get(self, request): form = ResourceForm() return render(request, 'szuspeech/manage-form.html', {'form': form})
class AddView(View): @method_decorator(check_perms('magazine.magazine_add')) def get(self, request): form = MagazineForm() return render(request, 'magazine/magazine-form.html', {'form': form, 'post_url': reverse('magazine:add')}) @method_decorator(check_perms('magazine.magazine_add')) def post(self, request): form = MagazineForm(request.POST, request.FILES) if not form.is_valid(): return render(request, 'magazine/magazine-form.html', {'form': form, 'post_url': reverse('magazine:add')}) form.save() return HttpResponseRedirect(reverse('magazine:manage'))
class manageUser(View): @method_decorator(check_perms('christmas.manager')) def get(self, request): uid = request.GET['id'] user = get_object_or_404(GiftSystem_user, pk=uid) user = UserForm(instance=user) return render(request, "christmas/user.html", locals()) @method_decorator(check_perms('christmas.manager')) def post(self, request): uid = request.GET['id'] user = get_object_or_404(GiftSystem_user, pk=uid) user = UserForm(request.POST, instance=user) user.save() return HttpResponseRedirect("/christmas/manage/")
class ModifyResorceView(View): @method_decorator(check_perms('szuspeech.manager')) def post(self, request): resource_id = request.GET.get('id') resource = get_object_or_404(Resource, pk=resource_id) form = ResourceForm(request.POST, request.FILES, instance=resource) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("szuspeech:manage_list")) return render(request, 'szuspeech/manage-form.html', {'form': form}) @method_decorator(check_perms('szuspeech.manager')) def get(self, request): resouce_id = request.GET.get('id') resource = get_object_or_404(Resource, id=resouce_id) form = ResourceForm(instance=resource) return render(request, 'szuspeech/manage-form.html', {'form': form})
class AddView(View): @method_decorator(check_perms('articles.article_add')) def get(self, request): form = ArticleForm() return render(request, 'articles/article-form.html', {'form': form, 'post_url': reverse('articles:add')}) @method_decorator(check_perms('articles.article_add')) def post(self, request): form = ArticleForm(request.POST,request.FILES ) if not form.is_valid(): return render(request, 'articles/article-form.html', {'form': form, 'post_url': reverse('articles:add')}) article = form.save(commit=False) article.editor = request.user article.create_ip = get_client_ip(request) article.save() return HttpResponseRedirect(reverse('articles:manage'))
class ListAccount(View): """List all accounts class-base view""" @method_decorator(check_perms('account.student_manager')) def get(self, request): paginator = Paginator(Student.objects.all().order_by('-pk'), 4) try: page = paginator.page(request.GET.get('page')) except InvalidPage: page = paginator.page(1) return render(request, 'master/account-list.html', {'page': page})
class ModifyMember(View): ''' 管理员修改信息 ''' @method_decorator(check_perms('member_infor.member_add')) def get(self, request): member_id = request.GET.get('id') member = get_object_or_404(Member, pk=member_id) form = MemberForm(instance=member) page = request.GET.get('page') title = u"修改通讯录信息" return render( request, 'member_infor/member_form.html', { 'form': form, 'member_id': member_id, 'page': page, 'post_url': reverse('member_infor:modify'), 'title': title }) @method_decorator(check_perms('member_infor.member_add')) def post(self, request): member_id = request.GET.get('id') member = get_object_or_404(Member, pk=member_id) form = MemberForm(request.POST, instance=member) page = request.GET.get('page') title = u"修改通讯录信息" if not form.is_valid(): return render( request, 'member_infor/member_form.html', { 'form': form, 'member_id': member_id, 'post_url': reverse('member_infor:modify'), 'title': title }) form.save() return HttpResponseRedirect( reverse('member_infor:manage') + '?page=' + page)
class ModifyView(View): @method_decorator(check_perms('magazine.magazine_modify')) def get(self, request): maga_id = request.GET.get('id') magazine = get_object_or_404(Magazine, id=maga_id) form = MagazineForm(instance=magazine) return render(request, 'magazine/magazine-form.html', {'form': form, 'post_url': reverse('magazine:modify') + '?id=' + maga_id}) @method_decorator(check_perms('magazine.magazine_modify')) def post(self, request): maga_id = request.GET.get('id') magazine = get_object_or_404(Magazine, id=maga_id) form = MagazineForm(request.POST, request.FILES, instance=magazine) # 用于检查期数是否有重复,但要排除自身与自身重复 form.model_id = maga_id if not form.is_valid(): return render(request, 'magazine/magazine-form.html', {'form': form, 'post_url': reverse('magazine:modify') + '?id=' + maga_id}) form.save() return HttpResponseRedirect(reverse('magazine:manage'))
class OrganzationManager(View): @method_decorator(check_perms('organization.organization_manager')) def post(self, request, id): organization = get_object_or_404(Organization, id=id) form = AddOrganizationManagerForm(request.POST) if not form.is_valid(): messages = form.errors.values() return spec_json(status='errors', messages=messages) email = form.cleaned_data['email'] user = get_object_or_404(User, username=email) student = user.student organization_manager_update(student, organization) return spec_json(status='success')
class manageGift(View): @method_decorator(check_perms('christmas.manager')) def get(self, request): gid = request.GET['id'] gift = get_object_or_404(Gift, pk=gid) if gift.isExchange: more = ExchangeForm(instance=gift.exchangegift) else: more = GivenForm(instance=gift.givengift) form = GiftForm(instance=gift) return render(request, "christmas/form.html", locals()) @method_decorator(check_perms('christmas.manager')) def post(self, request): gid = request.GET['id'] gift = get_object_or_404(Gift, pk=gid) form = GiftForm(request.POST, instance=gift) form.save() if gift.isExchange: more = ExchangeForm(request.POST, instance=gift.exchangegift) else: more = GivenForm(request.POST, instance=gift.givengift) more.save() return HttpResponseRedirect("/christmas/manage/")
class makeResultExcel(View): def __init__(self): self.exchange_data = [[u'礼物交换表'], [ u'姓名', u'性别', u'礼物名字', u'礼物编号', u'获得礼物名字', u'礼物ID' ]] @method_decorator(check_perms('christmas.manager')) def get(self, request): self.make_array() self.make_excel() def file_iterator(file_name, chunk_size=512): with open(file_name, "rb") as f: while True: c = f.read(chunk_size) if c: yield c else: break the_file_name = "stucampus/christmas/info/2.xlsx" response = StreamingHttpResponse(file_iterator(the_file_name)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format( the_file_name) return response def make_array(self): exchange_data_extend = [[ i.own.name, i.own.gender, i.name, i.giftId, Gift.objects.get( giftId=i.exchangegift.changeresult.getGiftId).name, i.exchangegift.changeresult.getGiftId ] for i in Gift.objects.filter(isDelete=False).filter( isExchange=True).filter(isGet=True)] self.exchange_data = self.exchange_data + exchange_data_extend def make_excel(self): wb = Workbook() ws = wb.new_sheet(u'交换表', data=self.exchange_data) wb.save('stucampus/christmas/info/2.xlsx')
class ListAccount(View): """List all accounts class-base view""" @method_decorator(check_perms('account.student_manager')) def get(self, request): keyword = request.GET.get('keyword') objects = Student.objects if keyword: objects = objects.filter( Q(true_name__contains=keyword) | Q(screen_name__contains=keyword) | Q(user__email__contains=keyword) | Q(user__username__contains=keyword)) else: objects = objects.all() paginator = Paginator(objects.order_by('-pk'), 10) try: page = paginator.page(request.GET.get('page')) except InvalidPage: page = paginator.page(1) return render(request, 'master/account-list.html', { 'page': page, 'keyword': 'keyword' })
class AddMemberList(View): ''' 批量添加通讯录成员,添加的成员默认通过 ''' @method_decorator(check_perms('member_infor.member_add')) def get(self, request): form = MemberListForm() title = u"通过xlsx批量添加通讯录信息" tips = u'''只支持上传xlsx文件,第一列为姓名,第二列为学号,第三列为电话号码,这三列为必须,后三列生日,邮箱,昵称,为非必须,你可以按顺序添写,无信息的那列放空白即可, 文件第一行为标签栏,填写姓名,学号,电话号码,生日,邮箱,昵称 第二列开始才是具体个人信息, 如陈泽集,2014150122,15889674306,1994-08-10,[email protected],阿集 如果学号已经存在,则会更新原来的信息 如果文件的某一处格式不符合规范,则会跳转单独更改,错误信息后面的信息需要再次添加 ''' return render( request, 'member_infor/member_form.html', { 'form': form, 'post_url': reverse('member_infor:add_list'), "title": title, "tips": tips }) @method_decorator(check_perms('member_infor.member_add')) def post(self, request): form = MemberListForm(request.POST, request.FILES) if not form.is_valid(): title = u"通过xlsx批量添加通讯录信息" tips = u'''只支持上传xlsx文件,第一列为姓名,第二列为学号,第三列为电话号码,这三列为必须,后三列生日,邮箱,昵称,为非必须,你可以按顺序添写,无信息的那列放空白即可, 文件第一行为标签栏,填写姓名,学号,电话号码,生日,邮箱,昵称 第二列开始才是具体个人信息, 如陈泽集,2014150122,15889674306,1994-08-10,[email protected],阿集 如果学号已经存在,则会更新原来的信息 如果文件的某一处格式不符合规范,则会跳转单独更改,错误信息后面的信息需要再次添加 ''' return render( request, 'member_infor/member_form.html', { 'form': form, 'post_url': reverse('member_infor:add_list'), "title": title, "tips": tips }) file = form.cleaned_data.get('file') data = xlrd.open_workbook(file_contents=file.read(), encoding_override="utf-8") table = data.sheets()[0] nrows = table.nrows ncols = table.ncols title = u"修改批量上传中的错误信息" tips = u''' 该错误信息后面的信息将不会被添加,你可以修正完xlsx后,重新批量上传 ''' for rownum in range(1, nrows): row = table.row_values(rownum) szu_no = int(row[1]) if Member.objects.filter(szu_no=szu_no).exists(): member = get_object_or_404(Member, szu_no=szu_no) form = MemberForm( { 'name': row[0], 'szu_no': int(row[1]), 'mobile_phone_number': int(row[2]), 'birthday': getdate(row[3]), 'e_mail': row[4], 'nick_name': row[5] }, instance=member) if not form.is_valid(): return render( request, 'member_infor/member_form.html', { 'form': form, 'post_url': reverse('member_infor:add'), "title": title, "tips": tips }) member = form.save(commit=False) member.approved = True member.save() else: form = MemberForm({ 'name': row[0], 'szu_no': int(row[1]), 'mobile_phone_number': int(row[2]), 'birthday': getdate(row[3]), 'e_mail': row[4], 'nick_name': row[5] }) if not form.is_valid(): return render( request, 'member_infor/member_form.html', { 'form': form, 'post_url': reverse('member_infor:add'), "title": title, "tips": tips }) member = form.save(commit=False) member.approved = True member.save() file.close() return HttpResponseRedirect(reverse('member_infor:manage'))
class makeFinalExcel(View): def __init__(self): self.exchange_data = [[u'交换礼物结果表'], [ u'礼物编号', u'礼物名', u'拥有者姓名', u'拥有者学号', u'获得者学号', u'获得者姓名' ]] self.given_data = [[u'交换礼物结果表'], [ u'礼物编号', u'礼物名', u'被赠予者姓名', u'被赠予者电话', u'住址', u'送礼人姓名', u'送礼人学号', u'是否匿名' ]] @method_decorator(check_perms('christmas.manager')) def get(self, request): self.make_array() self.make_excel() def file_iterator(file_name, chunk_size=512): with open(file_name, "rb") as f: while True: c = f.read(chunk_size) if c: yield c else: break the_file_name = "stucampus/christmas/info/3.xlsx" response = StreamingHttpResponse(file_iterator(the_file_name)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format( the_file_name) return response def make_array(self): exchange_data_extend = [[ i.giftId, i.name, i.own.name, i.own.phone, ChangeResult.objects.get( getGiftId=i.giftId).exchangegift.gift.own.stu_no, ChangeResult.objects.get( getGiftId=i.giftId).exchangegift.gift.own.name ] for i in Gift.objects.filter(isDelete=False).filter( isExchange=True).filter(isGet=True)] given_data_extend = [[ i.giftId, i.name, i.givengift.givenPerson, i.givengift.givenPhone, i.givengift.givenAdress, i.own.name, i.own.stu_no, i.isAnonymous ] for i in Gift.objects.filter(isDelete=False).filter( isExchange=False).filter(isGet=True)] self.exchange_data = self.exchange_data + exchange_data_extend self.given_data = self.given_data + given_data_extend def make_excel(self): def set_style(the_ws): ws_style = Style(size=15, alignment=Alignment(horizontal="center", vertical="center")) the_ws.range("A1", "D1").merge() for i in range(1, 5): the_ws.set_col_style(i, ws_style) wb = Workbook() ws = wb.new_sheet(u'交换表', data=self.exchange_data) set_style(ws) ws = wb.new_sheet(u'赠与表', data=self.given_data) set_style(ws) wb.save('stucampus/christmas/info/3.xlsx')
class makeExcel(View): def __init__(self): # self.exchange_south_data = [[u'交换礼物登记表--南区'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] # self.exchange_wsouth_data = [[u'交换礼物登记表--西南'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] # self.exchange_vege_data = [[u'交换礼物登记表--斋区'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] # self.given_south_data = [[u'赠与礼物登记表--南区'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] # self.given_wsouth_data = [[u'赠与礼物登记表--西南'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] # self.given_vege_data = [[u'赠与礼物登记表--斋区'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] self.exchange_data = [[u'交换礼物登记表'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] self.given_data = [[u'交换礼物登记表'], [u'学号', u'姓名', u'礼物编号', u'礼物类别', u'礼物描述']] self.gift_type = { "01": u'食物', "02": u'服装配饰', "03": u'钟表首饰', "04": u'化妆品', "05": u'运动户外', "06": u'电器数码', "07": u'小玩意', "08": u'手工物件', "09": u'二次元', "10": u'图书音像', "11": u'学习资源', "12": u'其他' } #GIFT_TYPE = ( # ('01', u'食物'), # ('02', u'服装配饰'), # ('03', u'钟表首饰'), # ('04', u'化妆品'), # ('05', u'运动户外'), # ('06', u'电器数码'), # ('07', u'小玩意'), # ('08', u'手工物件'), # ('09', u'二次元'), # ('10', u'图书音像'), # ('11', u'学习资源'), # ('12', u'其它'), #) @method_decorator(check_perms('christmas.manager')) def get(self, request): self.make_array() self.make_excel() def file_iterator(file_name, chunk_size=512): with open(file_name, "rb") as f: while True: c = f.read(chunk_size) if c: yield c else: break the_file_name = "stucampus/christmas/info/1.xlsx" response = StreamingHttpResponse(file_iterator(the_file_name)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format( the_file_name) return response def make_array(self): '''exchange_south_data_extend = [[i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description] for i in Gift.objects.filter(isDelete=False).filter(own__area="C").filter(isExchange=True)] exchange_wsouth_data_extend = [[i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description] for i in Gift.objects.filter(isDelete=False).filter(own__area="A").filter(isExchange=True)] exchange_vege_data_extend = [[i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description] for i in Gift.objects.filter(isDelete=False).filter(own__area="B").filter(isExchange=True)] given_south_data_extend = [[i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description] for i in Gift.objects.filter(isDelete=False).filter(own__area="C").filter(isExchange=False)] given_wsouth_data_extend = [[i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description] for i in Gift.objects.filter(isDelete=False).filter(own__area="A").filter(isExchange=False)] given_vege_data_extend = [[i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description] for i in Gift.objects.filter(isDelete=False).filter(own__area="B").filter(isExchange=False)] self.exchange_south_data = self.exchange_south_data + exchange_south_data_extend self.exchange_wsouth_data = self.exchange_wsouth_data + exchange_wsouth_data_extend self.exchange_vege_data = self.exchange_vege_data + exchange_vege_data_extend self.given_south_data = self.given_south_data + given_south_data_extend self.given_wsouth_data = self.given_wsouth_data + given_wsouth_data_extend self.given_vege_data = self.given_vege_data + given_vege_data_extend''' exchange_data_extend = [[ i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description ] for i in Gift.objects.filter(isDelete=False).filter(isExchange=True)] given_data_extend = [[ i.own.stu_no, i.own.name, i.giftId, self.gift_type[i.type], i.description ] for i in Gift.objects.filter(isDelete=False).filter(isExchange=False) ] self.exchange_data = self.exchange_data + exchange_data_extend self.given_data = self.given_data + given_data_extend def make_excel(self): def set_style(the_ws): ws_style = Style(size=15, alignment=Alignment(horizontal="center", vertical="center")) the_ws.range("A1", "E1").merge() for i in range(1, 5): the_ws.set_col_style(i, ws_style) the_ws.set_col_style( 5, Style(size=30, alignment=Alignment(horizontal="center", vertical="center"))) wb = Workbook() # ws = wb.new_sheet(u"南区交换", data=self.exchange_south_data) # set_style(ws) # ws = wb.new_sheet(u"西南交换", data=self.exchange_wsouth_data) # set_style(ws) # ws = wb.new_sheet(u"斋区交换", data=self.exchange_vege_data) # set_style(ws) # ws = wb.new_sheet(u"南区赠与", data=self.given_south_data) # set_style(ws) # ws = wb.new_sheet(u"西南赠与", data=self.given_wsouth_data) # set_style(ws) # ws = wb.new_sheet(u"斋区赠与", data=self.given_vege_data) # set_style(ws) ws = wb.new_sheet(u'交换表', data=self.exchange_data) set_style(ws) ws = wb.new_sheet(u'赠与表', data=self.given_data) set_style(ws) wb.save('stucampus/christmas/info/1.xlsx')