将CSV导入我的Django模型

时间:2017-09-04 19:55:25

标签: python django csv

我需要帮助才能将CSV上传到我的模型。我看到还有其他一些问题,但它们已经陈旧,或者用2.7写的并没有任何意义。

这些是我的模特。

class Ofac_Sdn(models.Model):
    number = models.IntegerField(blank=True, null=True)
    name = models.CharField(max_length=200, null=True)
    b_i = models.CharField(max_length=250, null=True)
    programe= models.CharField(max_length=250, null=True)
    last_name= models.CharField(max_length=250, null=True)
    more_info = models.CharField(max_length=250, null=True)
    vessel_call_sign = models.CharField(max_length=250, null=True)
    vessel_type= models.CharField(max_length=250, null=True)
    vessel_dwt = models.IntegerField(blank=True, null=True)
    tonnage = models.IntegerField(blank=True, null=True)
    vessel_flag = models.CharField(max_length=250, null=True)
    vessel_owner= models.CharField(max_length=250, null=True)
    dob_aka= models.CharField(max_length=250, null=True)

这是我的CSV中的一行模型:

36,AEROCARIBBEAN AIRLINES,-0- ,CUBA,-0- ,-0- ,-0- ,-0- ,-0- ,-0- ,-0- ,-0- 

我已经尝试过这个例子,但是我收到一条错误说: ModuleNotFoundError:没有名为'设置'

的模块

如果有人可以提供帮助,我会欠你很多,因为我被困在这里!

谢谢!

import csv, sys, os

project_dir = "/Users/cohen/my-python-project/venv/ofac/ofac_project/ofac_sdn/"

sys.path.append(project_dir)

os.environ['DJANGO_SETTINGS_MODULE']='settings'

import django
django.setup()

from ofac_sdn.models import Ofac_Sdn

data = csv.reader(open('/Users/cohen/my-python-project/venv/ofac/ofac_project/ofac_sdn/sdn.csv')) #,delimiter="|")
#data = csv.reader(open('/Users/cohen/my-python-project/venv/ofac/ofac_project/ofac_sdn/sdn2.csv'), dialect='excel-tab')
for row in data:
    if row[0] !="Number":
        post = Ofac_Sdn()
        post.number = row[0]
        post.name = row[1]
        post.b_i=row[2]
        post.programe=row[3]

        post.more_info=row[4]
        post.vessel_call_sign=row[5]
        post.vessel_type=row[6]
        post.vessel_dwt=row[7]
        post.tonnage=row[8]
        post.vessel_flag=row[9]
        post.vessel_owner=row[10]
        post.dob_aka=row[11]
        post.save()

2 个答案:

答案 0 :(得分:3)

该错误与CSV导入无关。

错误是说路径settings没有这样的模块。这意味着你把错误的路径放在这里:

os.environ['DJANGO_SETTINGS_MODULE']='settings'

它应该是project_name.settings或适合您项目的路径。

希望它有所帮助。

答案 1 :(得分:1)

我认为您需要添加项目名称:

os.environ['DJANGO_SETTINGS_MODULE']='project_name.settings'
#                                     ^^^^^^^^^^^^

您可以查找django-import-export它可以是简单的解决方案