将csv上传到django模型

时间:2014-03-12 18:22:33

标签: django csv django-models django-views

我将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 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'

我想编写一个django视图,可以让用户浏览到csv文件,然后点击导入将选定的csv文件上传/导入上面定义的模型(请考虑你回答的M2M字段)。 有人请给我一些指导吗? 我将非常感谢基于我的模型的示例。 此致

1 个答案:

答案 0 :(得分:0)

导入csv

f = 'your/file/name.csv'
with open(f, 'r') as csvfile:
    reader = csv.dictreader(csvfile, delimiter=';', quotechar='"')
    for row in reader:
        e = Event(**row)
        e.save()

我很确定你也可以从这里拿走所有内容:http://docs.python.org/2/library/csv.html正如我在这里写的几乎是复制粘贴:)。