如何使用CSV文件将数据导入或上传到Django中的数据库模型?

时间:2017-08-02 11:07:12

标签: python django-models django-admin

我创建了一个基于wold地图的网络应用,当用户点击特定国家/地区时,它会返回与特定国家/地区相关的信息:

在应用程序后面运行的模型是:

Models.py

from __future__ import unicode_literals
from django.db import models

class Country(models.Model):
    name = models.CharField(max_length=200)

    def __unicode__(self):
        return self.name


class CountryDetails(models.Model):
    country = models.ForeignKey(Country)
    T_attack = models.PositiveIntegerField(verbose_name="attack")
    year = models.CharField(max_length=254)
    Deaths = models.CharField(max_length=254)
    NEWS_ID = models.CharField(max_length=254, verbose_name="NEWS_ID")


    def __unicode__(self):
        return self.Deaths

并保存类似于给定的数据,这是由管理员用户界面淡化的演示数据:

name   T_attack   year  Deaths  News_ID

India    12       2006   12       NDTV
India    110      2009   1        DEAN
PAKISTAN 9        2002   10       XYZT
PAKISTAN 11       2021   11       XXTV
India    12       2023   120      NDNV
India    10       2012   12       DEAN
PAKISTAN 12       2022   12       DLRS
Canada   1        2001   1        DLTV
USA      2        2011   13       NTTV

我已经完成了应用程序现在我有一个.csv文件,其中包含类似格式的数据和大约500行。

在一些帖子中,我看到一些建议说django-import-export是出于此目的的正确选择但不幸的是我无法实现" Django-import-export&#34的导入方法;为了这个目的。

因此,我决定使用" Django-shell"编写一个手动代码来遍历所有行。像这样

f = open(my_csv_file.csv)
lines = f.readlines() 
For i,l in enumerate(lines):
    l.split(',')[0]
    c = Country.objects.create(name=l.split(',')[0])
    CountryDetails.objects.create(country=c,T_attack=l.split(',')[1],year=l.split(',')[2],Deaths=l.split(',')[3],News_ID=l.split(',')[4])

但是这种方法集中了方案,无法添加数据,因为我手动添加了Admin inter phase。

0 个答案:

没有答案
相关问题