我正在尝试将excel文件导入我的数据库。该文件包含一个id列,稍后将其保存到django模型中的Foreignkey。
st_id = row[10]
st_data = Student.objects.get(id=st_id)
现在,当我使用.save()方法保存此数据时,它会保存数据,但会返回在分配之前引用的未绑定错误“st_data”。追溯是invalid literal for int() with base 10
。
实际发生了什么?它可以保存正确的数据,但会为int()抛出无效的文字。
编辑: 总体概念如下:
try:
st_id = row[10]
print type(st_id) #this line returns both type float and str
st_data = Student.objects.get(id=st_id)
except Exception as e:
print e #here it throws an exception `invalid literal for int()`
st_dict = {
'student': st_data,
}
obj = Section(**st_dict)
obj.save() #the correct data is saved to the database.
答案 0 :(得分:1)
可能你的行不包含int。
要解决此问题,请尝试:
st_data = Student.objects.get(id=int(st_id))