繁体   English   中英

使用Django将CSV文件中的数据添加到数据库

[英]Adding data from csv file to database using django

我有Django模型,如下所示:

class TraxioRelations(models.Model):
    corgemeente = models.CharField(max_length=100, null=True)
    coradres = models.CharField(max_length=255, null=True)
    corhuisnr = models.CharField(max_length=10, null=True, blank=True)

该模型在数据库中创建一个表,其id如下: 在此处输入图片说明

现在,我想将记录从csv文件添加到该模型。 csv文件如下:

在此处输入图片说明

我使用copy命令如下:

COPY master_traxiorelations(corgemeente, coradres, corhuisnr)
FROM '/path/to/file.csv' CSV HEADER delimiter ';' encoding 'ISO-8859-1';

当我执行它时,出现如下错误:

[2017-08-21 15:50:49] [22P04] ERROR: extra data after last expected column

但是,当我添加一个idcopy命令时,因此是COPY master_traxiorelations(id, corgemeente, coradres, corhuisnr)

并且也要csv文件:

在此处输入图片说明

然后工作正常。

如何将文件中的数据添加到数据库中,而无需在复制命令和CSV文件中添加ID?

我解决了将id添加到模型的问题,如下所示:

id = models.AutoField(primary_key=True)

添加id = models.AutoField(primary_key=True)启用ID的自动递增。 因此,我的模型如下所示:

 class TraxioRelations(models.Model):
    id = models.AutoField(primary_key=True)
    corgemeente = models.CharField(max_length=100, null=True)
    coradres = models.CharField(max_length=255, null=True)
    corhuisnr = models.CharField(max_length=10, null=True, blank=True)

然后, copy命令无需在csv文件中添加id列即可工作。

COPY master_traxiorelations(corgemeente, coradres, corhuisnr)
FROM '/path/to/file.csv' CSV HEADER delimiter ';' encoding 'ISO-8859-1';

希望如果有人遇到同样的问题,这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM