78 lines
2.2 KiB
Python
78 lines
2.2 KiB
Python
|
"""
|
|||
|
部门管理视图函数
|
|||
|
功能:实现部门的增删改查
|
|||
|
"""
|
|||
|
from django.shortcuts import render, redirect
|
|||
|
|
|||
|
from app import models
|
|||
|
from app.models import Department # 数据表类
|
|||
|
|
|||
|
|
|||
|
def depart_list(request):
|
|||
|
"""
|
|||
|
部门列表
|
|||
|
"""
|
|||
|
data_list = Department.objects.all()
|
|||
|
for item in data_list:
|
|||
|
print(item.id)
|
|||
|
return render(request, 'depart_list.html', {'queryset': data_list})
|
|||
|
|
|||
|
|
|||
|
def depart_add(request):
|
|||
|
"""
|
|||
|
新增部门
|
|||
|
"""
|
|||
|
if request.method == 'GET':
|
|||
|
return render(request, 'depart_add.html')
|
|||
|
|
|||
|
title = request.POST.get('title')
|
|||
|
|
|||
|
Department.objects.create(title=title)
|
|||
|
return redirect('/depart/list')
|
|||
|
|
|||
|
|
|||
|
def depart_delete(request):
|
|||
|
"""
|
|||
|
删除部门
|
|||
|
"""
|
|||
|
nid = request.GET.get('nid')
|
|||
|
Department.objects.filter(id=nid).delete()
|
|||
|
return redirect('/depart/list')
|
|||
|
|
|||
|
|
|||
|
def depart_edit(request, nid):
|
|||
|
"""
|
|||
|
编辑部门
|
|||
|
nid 用于接收前端传递过来的id,他的名字要和urls.py文件中定义的一样
|
|||
|
"""
|
|||
|
if request.method == 'GET': # 进入编辑页面
|
|||
|
row_object = Department.objects.filter(id=nid).first()
|
|||
|
return render(request, 'depart_edit.html', {'row_object': row_object})
|
|||
|
|
|||
|
# 保存修改POST提交
|
|||
|
title = request.POST.get('title')
|
|||
|
Department.objects.filter(id=nid).update(title=title)
|
|||
|
return redirect('/depart/list')
|
|||
|
|
|||
|
|
|||
|
def depart_multi(request):
|
|||
|
""" 批量上传文件 (excel文件) """
|
|||
|
from django.core.files.uploadedfile import InMemoryUploadedFile
|
|||
|
|
|||
|
file_object = request.FILES.get('exc') # 从depart_list.html中读取上传的文件
|
|||
|
# 直接打开excel文件并读取
|
|||
|
from openpyxl import load_workbook
|
|||
|
wb = load_workbook(file_object) # load_workbook可以打开一个文件对象
|
|||
|
sheet = wb.worksheets[0] # 第1个工作薄
|
|||
|
# row = sheet.cell(1, 1) # xls表第1行,第1列数据
|
|||
|
# print(row.value)
|
|||
|
|
|||
|
# 循环读取所有行
|
|||
|
# 第1行是标题,数据从第2行开始读取
|
|||
|
for row in sheet.iter_rows(min_row=2):
|
|||
|
data = row[0].value
|
|||
|
if not models.Department.objects.filter(title=data).exists(): # 判断部门值是否存在
|
|||
|
models.Department.objects.create(title=data)
|
|||
|
|
|||
|
return redirect('/depart/list')
|