采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,请知道一下在xadmin中,导入excel的具体逻辑,希望有个demo参考,当获取到request.file后,这个文件是存储在服务器还是到了缓存?
def post(self, request, *args, **kwargs): if 'excel' in request.FILES: upload_redcord = UploadRecord() upload_redcord.user = request.user upload_redcord.file_name = request.FILES['excel'].name upload_redcord.upload_type = "detection" upload_redcord.save() upload_redcord.upload_file.save(request.FILES['excel'].name, request.FILES['excel']) try: pici_num = request.FILES['excel'].name.split(".")[0].split("_")[1] if len(pici_num) != 10 or not pici_num.startswith(u"ZL"): upload_redcord.process = u"文件名出错" upload_redcord.message = u"文件名错误, 正确的文件名格式为:检测数据_ZL20160806" upload_redcord.save() else: upload_redcord.pici_num = pici_num upload_redcord.save() arc_download = ArchiveDownload() arc_download.user = request.user arc_download.task_type = 1 arc_download.pici_num = pici_num arc_download.save() except Exception as e: upload_redcord.process = u"文件名出错" upload_redcord.message = u"文件名错误, 正确的文件名格式为:ZL20160806" upload_redcord.save() return super(UserDetectionAdmin, self).post(request, args, kwargs)
你参考一下这段代码
老师,已完成excel导入数据,但是不懂这样会不会占用资源另外,在xadmin中image的显示仍然有点问题,在xadmin产品详细页面中,xadmin会有个image的规则,若image的vlue为cource/……/xxx.jpg时则显示,若为http://开头则不会显示.
http这个规则不是xadmin完成的, 这个是浏览器完成的, 所以如果图片文件在本地就不要加http开头, 如果在其他服务器上就一定要加http开头, 另外我不太明白你所说的是占资源是什么? 我一般处理这种excel是先将文件保存, 如果有处理,我会单独用一个异步任务去做,这样体验会好一点
老师,是这样的,在xadmin课程页面中的某一个数据详情中,如何实现图片能读取到http开头的网络图片
#先在环境中pip install xlrd import xlrd from .models import Course from organization.models import CourseOrg def post(self, request, *args, **kwargs): if 'excel' in request.FILES: #初始化course course = Course() #读取excel文件 data = xlrd.open_workbook(request.FILES['excel'].name) #获取excel第一个表 table = data.sheets()[0] #获取该表行数 nrows = table.nrows #第一行一般为表头,故从该表第二行开始循环取值 for j in range(1, nrows): #获取机构名称,根据表具体内容调整下标 courseorg = table.row_values(j)[0] #通过excel中机构名称中文向CourseOrg查询外键 course.org_id= CourseOrg.objects.get(name=courseorg).id #获取其他字段值,根据表具体内容调整下标 course.name = table.row_values(j)[1] course.desc = table.row_values(j)[2] course.image = table.row_values(j)[3] ………… #保存数据 course.save() return super(CourseAdmin, self).post(request, args, kwargs)
谢谢你! data = xlrd.open_workbook(request.FILES['excel'].name 你好我在这一步出错了,怎么回事?
很有用,感谢
登录后可查看更多问答,登录/注册
【毕设】Python 2.7到3.6 完美适配,Django升级2.0
14.7k 81
769 4
1.6k 22
1.4k 20