我正在尝试将一个 excel 文件导入到我的 django 项目中,并使用 excel 的数据创建一个 Client 对象。
这是我的客户模型:
class Client(models.Model):
client = models.CharField(max_length=255, null=False)
name = models.CharField(max_length=255, blank=True, null=True)
surname = models.CharField(max_length=255, blank=True, null=True)
email = models.EmailField(blank=True, null=True)
phone = PhoneNumberField(blank=True, null=True)
我实现了这个功能来导入文件:
import phonenumbers
def import_proj_excel(request):
if request.method == 'POST':
client_resource = ClientResource()
dataset = Dataset()
file = request.FILES['prog-file']
if not file.name.endswith('xlsx'):
messages.info(request, 'invalid format')
return render(request, 'excel.html')
imported_data = dataset.load(file.read(), format='xlsx')
for data in imported_data:
if data[1] is None or data[2] is None or data[3] is None or data[4] is None or data[4] is None or data[5] is None:
d1 = data[1]
d2 = data[2]
d3 = data[3]
d4 = data[4]
d5 = data[5]
if d1 is None:
d1 = ""
elif d2 is None:
d2 = ""
elif d3 is None:
d3 = ""
elif d4 is None:
d4 = ""
elif d5 is None:
d5 = str(data[5])
d5 = ""
value = Cliente(
data[0],
d1,
d2,
d3,
d4,
d5,
)
else:
phone = phonemubers(data[5])
print(type(phone))
value = Client(
data[0],
data[1],
data[2],
data[3],
data[4],
phone,
)
value.save()
return render(request, 'excel.html')
数据[0] 是 id
数据[1] 是客户端
数据[2] 是名称
数据[3] 是姓
数据[4] 是电子邮件
data[5] 是电话号码
我做了:
if data[1] is None or data[2] is None or data[3] is None or data[4] is None or data[4] is None or data[5] is None:
因为当 excel 中的一个字段为空时,我不想在对象字段 None 中显示,但我想要一个空字符串。
无论如何,我收到错误:无法将 int 转换为 PhoneNumber。
raise TypeError("Can't convert %s to PhoneNumber." % type(value) .name )
有谁知道如何解决这个问题?