2017-09-04 2 views
1

Ich brauche Hilfe, um eine CSV-Datei in meine Modelle hochladen zu können. Ich habe gesehen, dass es noch andere Fragen gibt, aber sie sind alt oder in 2.7 geschrieben und ergeben keinen Sinn.CSV-Datei in meine Django-Modelle importieren

Das sind meine Modelle.

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) 

Dies ist das Modell einer Reihe von meiner CSV:

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

ich dieses Beispiel bis jetzt versucht, aber ich erhalte einen Fehler sagte: ModuleNotFoundError: Kein Modul ‚Einstellungen‘ genannt

Wenn jemand helfen könnte, würde ich Ihnen viel schulden, da ich hier feststecke!

Vielen Dank!

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() 

Antwort

3

Der Fehler hat nichts mit CSV-Import zu tun.

Der Fehler besagt, dass es kein solches Modul mit dem Pfad settings gibt. Dies bedeutet, dass der Sie den falschen Weg setzen hier:

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

Es sollte project_name.settings oder der Weg sein, dass Ihr Projekt passt.

Ich hoffe, es hilft.

1

Ich glaube, Sie müssen hinzufügen Sie Projektname:

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

und Sie django-import-export aussehen kann es Ihnen einfache Lösung

+0

danken sein kann! Es gibt ein Video-Tutorial zur Verwendung dieses Import-Export-Moduls. – Cohen

+0

Ich benutze nie Video-Tutorial, aber Sie gut [Dokumente hier] (http://django-import-export.readthedocs.io/en/stable/) –

Verwandte Themen