![](/img/trans.png)
[英]Django : How to import a data from csv to database without using form?
[英]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)
现在,我想将记录从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
但是,当我添加一个id
来copy
命令时,因此是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.