将csv导入django模型
我将模型定义为将csv导入django模型,django,Django,我将模型定义为 class Event(models.Model): event_id=models.IntegerField(primary_key=True) OS_CHOICE=(('Win 2003','windows 2003'), ('Win 2008','Windows 2008'), ('Win XP','Windows XP'), ('Win VISTA','Win VISTA'), ('Win 2
class Event(models.Model):
event_id=models.IntegerField(primary_key=True)
OS_CHOICE=(('Win 2003','windows 2003'),
('Win 2008','Windows 2008'),
('Win XP','Windows XP'),
('Win VISTA','Win VISTA'),
('Win 2007','Windows 2007'),
)
windows=models.CharField(max_length=10,choices=OS_CHOICE,default='Win 2003')
def __unicode__(self):
return " %s, event_id :%s" \
% (self.windows, self.event_id)
class Meta:
db_table= 'event'
verbose_name_plural='events'
class Eventgroups(models.Model):
event=models.ManyToManyField(Event)
group_name=models.CharField(max_length=100)
def __unicode__(self):
return "%s, %s" \
% (self.group_name, self.event)
class Meta:
db_table= 'eventgroup'
verbose_name_plural='eventgroups'
class Groups_import(models.Model):
event_id=models.IntegerField()
windows=models.CharField(max_length=100)
group_name=models.CharField(max_length=100)
我想写一个视图,用上面的模型定义将csv导入数据库。用户将被要求浏览到csv文件所在的位置,然后单击按钮导入csv。
有人知道如何做吗?您可以使用:
# sudo code
file = request.FILES['fileUpload']
data = [row for row in csv.reader(file.read().splitlines())]
for raw in data:
_, created = Event.objects.get_or_create(
event_id=row[0],
windows=row[1]
)
谢谢弗雷格雷斯。你考虑过事件组的M2M字段吗?对于数据中的行,您的意思是:如果您想使用这些LIB之一,请使用django适配器,这是django csv导入器的最新版本