django admin save_module 导入

来源:互联网 发布:数据库采集技术 编辑:程序博客网 时间:2024/06/06 02:57

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 readmin.site.register(StaffImport,StaffImportAdmin)

0 0
原创粉丝点击