# -*- coding: utf-8 -*- from django.shortcuts import render, redirect from django.http import HttpResponse from django.template import RequestContext from django.contrib import auth from django.contrib.auth import authenticate, login as auth_login, logout from django.contrib.auth import get_user_model from django.contrib.auth.models import User, Group, Permission from django.contrib.auth.hashers import make_password, check_password from django.contrib.auth.decorators import login_required from django.views.generic import ListView from django.views.generic.base import View from apps.AppInfoManage.models import Help, MyUser, User_Group, User_Log, Equip, Equip_type, Logo, Alarm_record, RecentCBDdata from django.db.models import Q # 引入自定义用户组: from apps.AppInfoManage.models import User_Group from apps.EquipManage.views import CJSONEncoder import time import re,datetime,json from apps.Home.forms import LoginForm, ChangePwdForm from apps.SystemManage.forms import AddUserForm from django.contrib.auth import get_user_model from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt # 用户管理 class UserManage_View(ListView): def get(self, request): # 接收当前用户 current_user = request.session.get('username') print("current_user:", current_user) current_user = MyUser.objects.get(username=current_user) # 判断是经销商还是超级管理员 if current_user.is_superuser == True: # 超级管理员 nums = MyUser.objects.all().count() else: nums = MyUser.objects.filter(user_agency=current_user.user_agency).count() User_Log.objects.create(log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='系统管理-用户管理') return render(request, 'systemmanage/systemmanage_user.html', context={"nums": nums}) def post(self,request): pass # 系统管理-用户管理子--页面用户列表视图: class UserList_View(ListView): def get(self, request): # 接收当前用户 current_user = request.session.get('username') print("current_user:", current_user) current_user = MyUser.objects.get(username=current_user) page = int(request.GET.get('page')) print("page=", page) # 判断是经销商还是超级管理员 if current_user.is_superuser == True or current_user.is_staff == True: user_list = MyUser.objects.all()[(10*(page-1)):(page*10)]#.order_by("-date_joined") else: user_list = MyUser.objects.filter(user_agency=current_user.user_agency)[(10*(page-1)):(page*10)] return render(request, 'systemmanage/systemmanage_user_list.html', context={"user_list": user_list,"username":current_user.username}) def post(self, request): req = request.POST.get("req") current_user = request.session.get('username') print("current_user:", current_user) current_user = MyUser.objects.get(username=current_user) if req == "state": # 禁用和启用: u_id = request.POST.get("id") state = request.POST.get("state") print("id:",u_id) print("state:",state) user = MyUser.objects.get(id = u_id) user.is_active = state try: user.save() data = "0" except: data = "1" return HttpResponse(data) elif req == "resetpwd": # 重置密码: uid = request.POST.get("id") new_pwd = request.POST.get("userpassWord") print("id:",uid) print("new_pwd:",new_pwd) user = MyUser.objects.get(id = uid) user.set_password(new_pwd) try: user.save() data = "0" except: data = "1" return HttpResponse(data) elif req == "top_up": e_id = request.POST.get("id") print("e_id",e_id) user = MyUser.objects.get(id = e_id) user.expire_date = user.expire_date + datetime.timedelta(days=365) print("------------",user.expire_date) try: user.save() data = "0" except: data = "1" return HttpResponse(data) elif req == "filter": print("筛选:") uname = request.POST.get("uname") uemail = request.POST.get("uemail") utype = request.POST.get("utype") print("uname:",uname) print("uemail:",uemail) print("utype:",utype) page = int(request.POST.get("page")) print("page:",page) # 接收当前用户 current_user = request.session.get('username') print("current_user:", current_user) current_user = MyUser.objects.get(username=current_user) # 判断是经销商还是超级管理员 if current_user.is_superuser == True or current_user.is_staff == True: if uname == "" and uemail == "" and utype == "-1": user_list = MyUser.objects.all() elif uname == "" and uemail == "" and utype != "-1": if utype == "0": user_list = MyUser.objects.filter(is_superuser = True) elif utype == "1": user_list = MyUser.objects.filter(is_staff = True,is_superuser = False) elif utype == "2": user_list = MyUser.objects.filter(is_staff = False,is_superuser = False) elif uname == "" and uemail != "" and utype == "-1": user_list = MyUser.objects.filter(email = uemail) elif uname == "" and uemail != "" and utype != "-1": if utype == "0": user_list = MyUser.objects.filter(is_superuser = True,email = uemail) elif utype == "1": user_list = MyUser.objects.filter(is_staff = True,is_superuser = False,email = uemail) elif utype == "2": user_list = MyUser.objects.filter(is_staff = False,is_superuser = False,email = uemail) elif uname != "" and uemail == "" and utype == "-1": user_list = MyUser.objects.filter(username__contains = uname) elif uname != "" and uemail == "" and utype != "-1": if utype == "0": user_list = MyUser.objects.filter(is_superuser = True,username__contains = uname) elif utype == "1": user_list = MyUser.objects.filter(is_staff = True,is_superuser = False,username__contains = uname) elif utype == "2": user_list = MyUser.objects.filter(is_staff = False,is_superuser = False,username__contains = uname) elif uname != "" and uemail != "" and utype == "-1": user_list = MyUser.objects.filter(email = uemail,username__contains = uname) elif uname != "" and uemail != "" and utype != "-1": if utype == "0": user_list = MyUser.objects.filter(is_superuser = True,username__contains = uname,email = uemail) elif utype == "1": user_list = MyUser.objects.filter(is_staff = True,is_superuser = False,username__contains = uname,email = uemail) elif utype == "2": user_list = MyUser.objects.filter(is_staff = False,is_superuser = False,username__contains = uname,email = uemail) else: user_list = MyUser.objects.filter(user_agency=current_user.user_agency) nums = user_list.count() print("nums:",nums) user_list = user_list[(10*(page-1)):(page*10)] return render(request, 'systemmanage/systemmanage_user_list.html', context={"user_list": user_list,"nums":nums,"username":current_user.username}) # 用户编辑 from django.views.decorators.csrf import csrf_exempt @csrf_exempt def systemmanage_user_edit(request): username = request.GET.get('uname') uname = MyUser.objects.get(username=username) # 所有的用户组: # all_groups = User_Group.objects.all() # 所有的logo all_logo = Logo.objects.all() if request.method == 'GET': # 获取当前用户的所有组: user_name = request.user.username print('user_name=', user_name) current_user = MyUser.objects.get(username=user_name) if current_user.is_superuser: role = "superuser" elif current_user.is_staff: role = "staff" elif current_user.is_agency: role = "agency" else: role = "user" groups = User_Group.objects.filter(user=uname) print("type groups:", type(groups)) print("groups:", groups) return render(request, 'systemmanage/systemmanage_user_edit.html', context={"uname": uname,"groups": groups, "all_logo": all_logo, 'role': role}) if request.method == 'POST': postname = request.POST['user.name'] uname.user_phone = request.POST['user.phone'] post_type = request.POST.get('user_type') # 角色:即用户组; post_groups = request.POST.get('user_groups') print("post_groups:", post_groups) if post_groups != '0' and post_groups != None: # 获取当前用户的组: post_groups = Logo.objects.get(role_describe=post_groups) print("post_groups:", post_groups) groups = Group.objects.filter(user=uname) uname.user_logo = None uname.save() uname.user_logo = post_groups uname.save() # 省市区: uname.user_pro = request.POST['province'] print(request.POST['province']) uname.user_city = request.POST['city'] print(request.POST['city']) uname.user_area = request.POST['district'] print(request.POST['district']) uname.user_remark = request.POST['user_remarks'] print("post_type", post_type) if post_type == '0': uname.is_superuser = True uname.is_staff = True print("post_type") elif post_type == '1': uname.is_superuser = False uname.is_staff = True print("post_type") elif post_type == '2': uname.is_superuser = False uname.is_staff = False print("post_type") # 判断新输入的用户名是否存在: # post的用户名存在,且没有更改用户名: if MyUser.objects.filter(username=postname).exists() == True and MyUser.objects.get(username=postname).username == uname.username: uname.save() user_list = MyUser.objects.all() User_Log.objects.create(log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='系统管理-用户管理--编辑用户:修改用户'+username+"的信息") return redirect('/systemmanage_user') # post的用户名存在,且用户名改变,即输入的新用户名已存在! elif MyUser.objects.filter(username=postname).exists() == True and MyUser.objects.get(username=postname).username != uname.username: uname.save() User_Log.objects.create(log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='系统管理-用户管理--编辑用户:修改用户'+username+"的信息") user_name_error = "用户名修改失败,该用户已存在!" return render(request, 'systemmanage/systemmanage_user_edit.html', context={"uname": uname, "roles": roles, "role_num": role_num, 'user_name_error': user_name_error}) # post的用户名不存在,即可用的新用户名: else: # 保存新用户名: uname.username = postname uname.save() User_Log.objects.create(log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='系统管理-用户管理--编辑用户:修改'+uname+"的用户名为:"+uname.username) return redirect('/systemmanage_user') # 用户管理--新增用户 视图函数 class UserManageAdd_View(View): def post(self, request): # 用户注册的ajax的post: name = request.POST.get('username') email = request.POST.get('email') phone = request.POST.get('phone') pro = request.POST.get('province') city = request.POST.get('city') area = request.POST.get('area') utype = request.POST.get('type') remark = request.POST.get('remark') group = request.POST.get('group') user_name = request.user.username print('user_name=', user_name) current_user = MyUser.objects.get(username=user_name) one_year = datetime.timedelta(days=365) one_year_later = datetime.datetime.now() + one_year if current_user.is_superuser == True or current_user.is_staff == True: if MyUser.objects.extra(where=['binary username=%s'], params=[name]).exists(): # 用户已存在!!! data = "1" return HttpResponse(data) elif MyUser.objects.filter(email = email).exists(): # 该邮箱已注册!!! data = "2" return HttpResponse(data) else: UserModel = get_user_model() if utype == "0": # 创建管理员: user = UserModel.objects.create_user(username=name, email=email,\ user_phone=phone, password="yf123456",\ user_pro = pro,user_city = city,user_area = area,\ is_active = 1,is_staff = 1) elif utype == "1": # 创建用户: user = UserModel.objects.create_user(username=name, email=email,\ user_phone=phone, password="yf123456",\ user_pro = pro,user_city = city,user_area = area,\ is_active = 1,is_staff = 0,expire_date=one_year_later) elif current_user.is_agency == True: if MyUser.objects.extra(where=['binary username=%s'], params=[name]).exists(): # 用户已存在!!! data = "1" return HttpResponse(data) elif MyUser.objects.filter(email = email).exists(): # 该邮箱已注册!!! data = "2" return HttpResponse(data) else: UserModel = get_user_model() user = UserModel.objects.create_user(username=name, email=email,\ user_phone=phone, password="yf123456",\ user_pro = pro,user_city = city,user_area = area,\ is_active = 1,is_staff = 0,user_agency = current_user.user_agency) user.save() data = "0" return HttpResponse(data) def get(self, request): user_name = request.user.username print('user_name=', user_name) current_user = MyUser.objects.get(username=user_name) if current_user.is_superuser: role = "superuser" elif current_user.is_staff: role = "staff" elif current_user.is_agency: role = "agency" form = AddUserForm() return render(request, 'systemmanage/systemmanage_user_add.html', context={'form': form, 'role': role}) # 日志管理 class Log_View(View): def get(self,request): nums = User_Log.objects.all().count() return render(request,'systemmanage/systemmanage_log.html',context={'nums':nums}) # 日志列表 class Log_List(View): def get(self,request): page = int(request.GET.get('page')) print("page:",page) log_list = User_Log.objects.all()[(10*(page-1)):(page*10)] # name_list = [] # aaa = MyUser.objects.all().values() # for a in aaa: # name_list.append(a['username']) # print(name_list) # bbb = User_Log.objects.filter(log_user__in=name_list).order_by['-log_time'][:-1] # print(bbb) return render(request,'systemmanage/systemmanage_log_list.html',context={'log_list':log_list}) def post(self, request): req = request.POST.get('req') print("req:",req) if req == "filter": # 筛选:用户名、创建时间:f:filter print("筛选:") f_name = request.POST.get('uname') f_tbegin = request.POST.get('begin') f_tend = request.POST.get('end') print("f_name:",f_name) print("f_tbegin:",f_tbegin) print("f_tend:",f_tend) page = int(request.POST.get('page')) print("page:",page) if f_name == '' and f_tbegin == '' and f_tend == '': log_list = User_Log.objects.all() elif f_name == '' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) print("begindate:",begindate) print("enddate:",enddate) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) print("begindate:",begindate) print("enddate:",enddate) log_list = User_Log.objects.filter(log_time__range=(start_date, end_date)) elif f_name != '' and f_tbegin == '' and f_tend == '': log_list = User_Log.objects.filter(log_user__contains=f_name) elif f_name != '' and f_tbegin != '' and f_tend != '': begindate = re.findall(r"\d+\.?\d*", f_tbegin) enddate = re.findall(r"\d+\.?\d*", f_tend) start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2])) end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2])) log_list = User_Log.objects.filter(log_user__contains=f_name,log_time__range=(start_date, end_date)) # dat = {'msg':"测试","nums":100} nums = log_list.count() log_list = log_list[(10*(page-1)):(page*10)] return render(request,'systemmanage/systemmanage_log_list.html',context={'log_list':log_list,"nums":nums}) # 用户组管理 视图函数 class RoleManage_View(View): def get(self, request): role_list = Logo.objects.all() return render(request, 'systemmanage/systemmanage_role.html', context={'role_list': role_list}) def post(self, request): # addName = request.POST.get('addName') # print("addName:",addName) addDescribe = request.POST.get('addDescribe') print("addDescribe:",addDescribe) groupname = Logo.objects.filter(role_describe=addDescribe) if len(groupname) != 0: data = "1" return HttpResponse(data) group = Logo.objects.create(role_describe=addDescribe) data = "0" return HttpResponse(data) # 自定义首页logo和footer: import os from PIL import Image @method_decorator(csrf_exempt, name='dispatch') def home_set(request): # 获得当前用户的用户名 if request.method == 'GET': current_group = request.GET.get('group') print("current_group", current_group) group = Logo.objects.get(role_describe=current_group) return render(request, 'systemmanage/home_set.html',context={'group': group}) if request.method == 'POST': req = request.POST.get('req') print("req:", req) if req == 'footer': current_group = request.POST.get('group') print("current_group:", current_group) group = Logo.objects.get(role_describe=current_group) # print("group.role_footer:", group.role_footer) footer = request.POST.get('footer') # print("footer:", footer) group.role_footer = footer header = request.POST.get('header') # print("footer:", footer) group.role_header = header group.save() data = "0" return HttpResponse(data) # elif req == 'header': # current_group = request.POST.get('group') # print("current_group:", current_group) # group = Logo.objects.get(role_describe=current_group) # # print("group.role_footer:", group.role_footer) # header = request.POST.get('header') # # print("footer:", footer) # group.role_footer = header # group.save() # data = "0" # return HttpResponse(data) else: current_group = request.POST.get('group1') print("current_group:", current_group) group = Logo.objects.get(role_describe=current_group) group_logo = request.FILES['upicture'] print("组的首页logo", group_logo) # 路径: group_logo_dir = 'home_logo/' # group_logo_dir = 'F:\\YFWLW\\yfwlw\\home_logo/' # 判断如果路径不存在,即创建路径 if os.path.exists(group_logo_dir) == False: os.makedirs(group_logo_dir) img = Image.open(group_logo) img.save(group_logo_dir + current_group+".png") new_logo = group_logo_dir + current_group+".png" # new_logo = 'home_logo/' + current_group+".png" print("组页logo路径:", new_logo) # 数据库关联设备,并在照片的表中存入路径: group.role_logo = new_logo group.save() data = "0" return HttpResponse(data) # 权限列表 视图函数 class Privi_View(ListView): def get(self, request): privi_list = Permission.objects.all() return render(request, 'systemmanage/systemmanage_privi.html', context={'privi_list': privi_list}) # 帮助中心设置 视图函数 class Help_Set_View(View): def get(self, request): help_list = Help.objects.all() return render(request, 'systemmanage/systemmanage_help.html', context={'help_list': help_list}) # 设备预警信息 class EquipAlarm(View): def get(self,request): alarm_obj = Alarm_record.objects.all() nums = alarm_obj.count() return render(request,'systemmanage/equip_alarm.html', context={'nums': nums}) from collections import Counter # 设备预警信息 class EquipAlarm_List(View): def get(self,request): page = int(request.GET.get('page')) alarm_obj = Alarm_record.objects.all() alarm_list = alarm_obj[(10*(page-1)):(page*10)] return render(request,'systemmanage/equip_alarm_list.html', context={'alarm_list': alarm_list}) def post(self,request): e_id = request.POST.get('e_id') page = int(request.POST.get('page',1)) f_type = request.POST.get('f_type') req = request.POST.get('req') data = [] if req == "offline": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":Equip.objects.get(equip_id=number).equip_type_id,"nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "relink": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status': 'relink', 'type': 'dev_sta'}").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":Equip.objects.get(equip_id=number).equip_type_id,"nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "cbdoffline": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}",e_type="3").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":"3","nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "scdoffline": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}",e_type="2").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":"2","nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "xyoffline": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}",e_type="4").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":"4","nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "qxzoffline": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status':0,'type':'offline'}",e_type="5").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":"5","nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "cbdrelink": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status': 'relink', 'type': 'dev_sta'}",e_type="3").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":"3","nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) elif req == "qxzrelink": alarm_list = Alarm_record.objects.filter(alarm_desc="{'status': 'relink', 'type': 'dev_sta'}",e_type="5").values_list('equip_id_id') dat = Counter(alarm_list) dat = {str(k): v for k, v in dat.items()} for i in dat: number = re.findall("\d+",i)[0] data.append({"e_id":number,"etype":"5","nums":dat[i]}) data = sorted(data, key=lambda x:x['nums'],reverse=True) nums = len(data) data = data[(10*(page-1)):(page*10)] data = {'data': data, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) alarm_obj = Alarm_record.objects.all().values() if e_id: alarm_obj = Alarm_record.objects.filter(equip_id__equip_id__contains=e_id).values() dat = [] for i in alarm_obj: sta = {"equip_id": i["equip_id_id"],"alarm_time": i["alarm_time"],"alarm_desc": i["alarm_desc"]} dat.append(sta) if f_type: dat = [] for i in alarm_obj: sta = {"equip_id": i["equip_id_id"],"alarm_time": i["alarm_time"],"alarm_desc": i["alarm_desc"]} if eval(i['alarm_desc'])['type'] == f_type: dat.append(sta) nums = len(dat) dat = dat[(10*(page-1)):(page*10)] # print("dat:",eval(dat[0]['alarm_desc'])['type']) data = {'dat': dat, 'nums': nums} data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) # 代理商分配视图 class Agency_View(ListView): def get(self, request): agency_list = User_Group.objects.all() nums = MyUser.objects.all().count() return render(request,'systemmanage/agency_view.html', context={'nums': nums, "agency_list":agency_list}) def post(self, request): user_name = request.POST.get('uname') agency_name = request.POST.get('agency') is_not = request.POST.get('is_not') print("username",user_name) print("agencyname",agency_name) print("is_not",is_not) user_obj = MyUser.objects.get(username=user_name) if agency_name == "": user_obj.user_agency = None user_obj.is_agency = is_not user_obj.save() try: equip_list = Equip.objects.filter(equip_user=user_obj) for x in equip_list: x.equip_agency = None x.save() except: pass else: agency_obj = User_Group.objects.get(name=agency_name) user_obj.user_agency = agency_obj user_obj.is_agency = is_not user_obj.save() try: equip_list = Equip.objects.filter(equip_user=user_obj) for x in equip_list: x.equip_agency = agency_obj x.save() except: pass data = "0" return HttpResponse(data) class Agency_View_List(ListView): def get(self, request): page = int(request.GET.get('page')) print("page:",page) username = request.GET.get('name') print("name:",username) if username != None: user_list = MyUser.objects.filter(username__contains=username) else: user_list = MyUser.objects.all() nums = user_list.count() user_list = user_list[(10*(page-1)):(page*10)] agency_list = User_Group.objects.all() return render(request,'systemmanage/agency_view_list.html', context={"user_list":user_list, "agency_list":agency_list, "nums":nums}) def post(self, request): pass # 新增代理商 class Agency_Add_View(ListView): def get(self, request): pass def post(self, request): agency_name = request.POST.get('name') if User_Group.objects.filter(name=agency_name).exists(): print("代理商已存在") data = "1" else: User_Group.objects.create(name=agency_name) data = "0" return HttpResponse(data) # 测报灯识别 class Is_Distinguish(ListView): def get(self, request): cbd_list = Equip.objects.filter(equip_type_id=3) nums = cbd_list.count() return render(request,'systemmanage/isDistinguish.html', context={"nums":nums}) def post(self, request): page = int(request.POST.get("page")) imei = request.POST.get("imei") cbd_list = Equip.objects.filter(equip_type_id=3).values() cbd_list2 = RecentCBDdata.objects.all().values() if imei: cbd_list = Equip.objects.filter(equip_type_id=3,equip_id__contains=imei).values() cbd_list2 = RecentCBDdata.objects.filter(equip_id__equip_id__contains=imei).values() dat = [] for i in cbd_list: for x in cbd_list2: if x['equip_id_id'] == i['equip_id']: dat.append({"e_id":i['equip_id'],"add_time":i['equip_add_time'],"addr":i['ftp_addr'],"disc":x['disc']}) nums = len(dat) print(dat) dat = dat[(10*(page-1)):(page*10)] data = {"dat":dat,"nums":nums} data = json.dumps(data, cls=CJSONEncoder) return HttpResponse(data) # 测报灯识别修改 class Is_Distinguish_Change(ListView): def get(self, request): pass def post(self, request): imei = request.POST.get("imei") addr = request.POST.get("addr") disc = request.POST.get("disc") print("disc",disc) print("addr",addr) print("imei",imei) if disc == "1": try: cbd_obj = RecentCBDdata.objects.get(equip_id_id=imei) cbd_obj.disc = 1 cbd_obj.save() data = "0" except: data = "1" elif disc == "0": try: cbd_obj = RecentCBDdata.objects.get(equip_id_id=imei) cbd_obj.disc = 0 cbd_obj.save() data = "0" except: data = "1" elif disc == "2": try: cbd_obj = RecentCBDdata.objects.get(equip_id_id=imei) cbd_obj.disc = 2 cbd_obj.save() data = "0" except: data = "1" if addr == "cancel": try: equip_obj = Equip.objects.get(equip_id=imei) equip_obj.ftp_addr = "" equip_obj.save() data = "0" except: data = "1" elif addr: try: equip_obj = Equip.objects.get(equip_id=imei) equip_obj.ftp_addr = addr equip_obj.save() data = "0" except: data = "1" return HttpResponse(data)