from django.shortcuts import render, redirect, HttpResponse from app01 import models from app01.utils.pagination import Pagination from app01.utils.form import UserModelForm, PrettyModelForm, PrettyEditModelForm def depart_list(request): """ 部门列表 """ # 去数据库中获取所有的部门列表 # [对象,对象,对象] queryset = models.Department.objects.all() return render(request, 'depart_list.html', {'queryset': queryset}) def depart_add(request): """ 添加部门 """ if request.method == "GET": return render(request, 'depart_add.html') # 获取用户POST提交过来的数据(title输入为空) title = request.POST.get("title") # 保存到数据库 models.Department.objects.create(title=title) # 重定向回部门列表 return redirect("/depart/list/") def depart_delete(request): """ 删除部门 """ # 获取ID http://127.0.0.1:8000/depart/delete/?nid=1 nid = request.GET.get('nid') # 删除 models.Department.objects.filter(id=nid).delete() # 重定向回部门列表 return redirect("/depart/list/") def depart_edit(request, nid): """ 修改部门 """ if request.method == "GET": # 根据nid,获取他的数据 [obj,] row_object = models.Department.objects.filter(id=nid).first() return render(request, 'depart_edit.html', {"row_object": row_object}) # 获取用户提交的标题 title = request.POST.get("title") # 根据ID找到数据库中的数据并进行更新 # models.Department.objects.filter(id=nid).update(title=title,其他=123) models.Department.objects.filter(id=nid).update(title=title) # 重定向回部门列表 return redirect("/depart/list/") def depart_multi(request): """ 批量删除(Excel文件)""" from openpyxl import load_workbook # 1.获取用户上传的文件对象 file_object = request.FILES.get("exc") # 2.对象传递给openpyxl,由openpyxl读取文件的内容 wb = load_workbook(file_object) sheet = wb.worksheets[0] # 3.循环获取每一行数据 for row in sheet.iter_rows(min_row=2): text = row[0].value exists = models.Department.objects.filter(title=text).exists() if not exists: models.Department.objects.create(title=text) return redirect('/depart/list/')