view.py
#导入excel表并存入数据库 def import_user(self, request, obj, change): wb = load_workbook(filename=obj.file_data.path)#读取上传文件 ws = wb.get_sheet_names() ws = wb.get_sheet_by_name(ws[0]) rows= ws.rows headers = ['name', 'mobile', 'email'] lists = [] nrows=[] for i in rows: nrows.append(i) len_nrows = len(nrows) print len_nrows,341 # users = request.user for row in range(2,len_nrows+1): r = {} for col in range(1, len(headers) + 1): key = headers[col - 1] r[key] = ws.cell(row=row, column=col).value lists.append(r) sqllist = [] staff_mobile=[i.mobile for i in Staff.objects.all()] staff_email=[j.email for j in Staff.objects.all()] count_false =0 count_success =0 for cell in lists: # for header in headers: #TODO 导入验证 name = cell['name'] mobile = cell['mobile'] email = cell['email'] if (name and mobile and email)==None: pass else: if unicode(mobile) in staff_mobile: if unicode(email) in staff_email: count_false +=1 pass else: count_success +=1 sql = Staff(name=name, mobile=mobile, email=email, corporation=obj.corporation) sqllist.append(sql) else: count_success +=1 sql = Staff(name=name, mobile=mobile, email=email,corporation=obj.corporation) sqllist.append(sql) self.message_user(request, u"%s 条导入失败." %(count_false)) self.message_user(request, u"%s 条导入成功." %(count_success)) Staff.objects.bulk_create(sqllist)
admin.py
class StaffImportAdmin(admin.ModelAdmin): list_display = ('corporation','create_time',) list_display_links = ('create_time',) def save_model(self, request, obj, form, change): re = super(StaffImportAdmin,self).save_model(request, obj, form, change) import_user(self, request, obj, change) return re admin.site.register(StaffImport,StaffImportAdmin)