祝大家今天愉快。在
在构建django应用程序时,我遇到了一个问题,希望能得到帮助。在
我用一个空的pandas数据框手动生成一个excel文件,其中头是另一个模型字段的内容,这个文件将作为用户导入数据的模板。在
文件已成功生成,但当我尝试将其保存到模型中时(这样以后就不必再创建相同的文件),它会显示以下错误:
'charmap' codec can't decode byte 0x8d in position 54: character maps to < undefined>
我现在使用的是Django 2.0.3,windows10,我的系统语言是西班牙语(拉丁美洲)
这是视图
视图从窗体接收值'periodo'(句点)和'program'('program')
def generar_archivo_importacion(request):
if request.method == 'GET':
periodo_plantilla = Periodo.objects.get(id=request.GET['periodo'])
programa_plantilla = Programa.objects.get(id=request.GET['programa'])
# HERE I TRY TO GET THE DATA FOR THE DATAFRAME HEADERS
try:
modulos_generales = ModulosGeneralesPeriodo.objects.get(periodo__id=periodo_plantilla.id). \
modulos_generales.all()
except ModulosGeneralesPeriodo.DoesNotExist:
return HttpResponse('Error: No hay Módulos generales inscritos en este periodo, corrija este error')
datos = {
'Numero Documento': [],
'Tipo Documento': [],
'Nombre': [],
'Apellido': [],
}
for modulo in modulos_generales:
datos[modulo.nombre_modulo_normalizado] = []
# DATAFRAME CREATION
df = pd.DataFrame(datos)
# FILE CREATION, nombre_archivo = name_file in spanish
nombre_archivo = 'Plantilla puntajes 1.xlsx'
writer = pd.ExcelWriter('media/temp/' + nombre_archivo, engine='xlsxwriter')
df.to_excel(writer, sheet_name='Puntaje')
writer.save()
# At this point the file is saved in 'media/temp/'
f = open('media/temp/' + nombre_archivo, mode='r')
# Here I create a new model object
nueva_plantilla = PlantillasPuntaje(programa=programa_plantilla, periodo=periodo_plantilla)
# This is where I suposse the problem is, when I try to save the file I just created
nueva_plantilla.archivo.save(nombre_archivo, File(open('media/temp/'+ nombre_archivo)))
# Im returning a string at the moment
return HttpResponse('it works')
这是模型
^{pr2}$编辑:回溯完全错误**
^{3}$谢谢你的关注
打开Excel文件进行读取时,请尝试指定二进制
'rb'
模式。在相关问题 更多 >
编程相关推荐