Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to import csv data into django models

I have some CSV data and I want to import into django models using the example CSV data:

1;"02-01-101101";"Worm Gear HRF 50";"Ratio 1 : 10";"input shaft, output shaft, direction A, color dark green"; 2;"02-01-101102";"Worm Gear HRF 50";"Ratio 1 : 20";"input shaft, output shaft, direction A, color dark green"; 3;"02-01-101103";"Worm Gear HRF 50";"Ratio 1 : 30";"input shaft, output shaft, direction A, color dark green"; 4;"02-01-101104";"Worm Gear HRF 50";"Ratio 1 : 40";"input shaft, output shaft, direction A, color dark green"; 5;"02-01-101105";"Worm Gear HRF 50";"Ratio 1 : 50";"input shaft, output shaft, direction A, color dark green"; 

I have some django models named Product. In Product there are some fields like name, description and price. I want something like this:

product=Product() product.name = "Worm Gear HRF 70(02-01-101116)" product.description = "input shaft, output shaft, direction A, color dark green" product.price = 100 
like image 436
little_fish Avatar asked Mar 17 '10 04:03

little_fish


People also ask

Can I use CSV as database in Django?

You can import any models or other parts of your Django project to use in these scripts”. So, we import both the Films and Genre models and the csv Python builtin module in the script.

What is csv file in Django?

django-csvimport is a generic importer tool to allow the upload of CSV files for populating data. The egg installs an admin csvimport model that has a file upload field. Add a new csvimport and upload a comma separated values file or MS Excel file.


1 Answers

You want to use the csv module that is part of the python language and you should use Django's get_or_create method

 with open(path) as f:         reader = csv.reader(f)         for row in reader:             _, created = Teacher.objects.get_or_create(                 first_name=row[0],                 last_name=row[1],                 middle_name=row[2],                 )             # creates a tuple of the new object or             # current object and a boolean of if it was created 

In my example the model teacher has three attributes first_name, last_name and middle_name.

Django documentation of get_or_create method

like image 196
Friendm1 Avatar answered Sep 30 '22 00:09

Friendm1