django admin save_module 导入

本文主要探讨Django框架中admin模块的使用,包括如何在view.py和admin.py文件中设置和导入,以便实现后台管理功能。通过阅读,读者将了解如何注册模型到admin界面以及如何自定义admin操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值