【发布时间】:2016-12-13 17:33:42
【问题描述】:
我有一个简单但令人沮丧的问题,我似乎无法弄清楚。
我正在尝试将数据从 csv 文件加载到 Django 模型中。为此,我编写了以下脚本作为视图:
import csv
def import_db(request):
dataReader = csv.reader(open('/home/<name>/webapps/<name2>/employees.csv'), delimiter=',', quotechar='"')
for row in dataReader:
emp = Employee()
emp.first_name = row[0]
emp.last_name = row[1]
emp.email = row[2]
emp.level = row[3]
emp.service_area = row[4]
emp.service_line = row[5]
emp.office = row[6]
emp.save()
return HttpResponse("Completed", content_type="text/plain")
我已将视图链接到如下网址:
from reviews import views as emp
url(r'^load/$', emp.import_db, name='importdb')
我的想法是,当我转到链接 sitename.com/load 时,我的数据将从我的 employee.csv 文件加载到我的 Employee 模型中。
问题是当我运行这个脚本时,我的 Django 模型中的 csv 文件中的每一行都有 2 个条目。我在 csv 中有 1530 条员工行,当我这样做时,模型会填充 3060 个实例。更烦人的是,模型中条目的顺序与 csv 文件的顺序不同,所以我不能简单地删除 1530 个模型实例的第二个“组”。即使我尝试使用 csv 文件中 20 行数据的子集,我也会得到 40 个模型实例。知道为什么会发生这种情况以及我能做些什么来解决它吗?
非常感谢!
【问题讨论】:
-
什么是 Employee() ?是你的模特吗?
标签: django python-2.7 csv django-models