首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多个值导入到一个外键值

如何将多个值导入到一个外键值
EN

Stack Overflow用户
提问于 2013-09-17 20:59:28
回答 1查看 74关注 0票数 2

我有一个从csv文件导入的导入脚本,但一个值(customer)可以重复。例如,名称总是不同的,但是客户(john)可以有5个条目。我需要将其导入到名为customer的外键中以用于其他用途。但我不知道该怎么做。

我的模型

代码语言:javascript
复制
class Route_destinguisher(models.Model):
    name = models.CharField(max_length=100)
    customer = models.CharField(max_length=100)
    comment = models.TextField(blank=True)
    active = models.BooleanField(default=True)
    rd = models.CharField(max_length=20, default='33763:264')
    def __unicode__(self):
            return self.name

我的导入代码

代码语言:javascript
复制
dataReader = csv.reader(open(csv_filepathname), delimiter=',', quotechar='"')

for row in dataReader:
        route_distinguisher = Route_destinguisher()
        route_distinguisher.customer=row[2].split("-")[0]
        route_distinguisher.name=row[2]
        route_distinguisher.rd=row[1].replace('\t',':')
        route_distinguisher.save()
        print row
EN

回答 1

Stack Overflow用户

发布于 2013-09-17 21:08:03

首先,您需要创建一个带有name字段的新模型CustomerRoute_destinguisher模型应该有一个指向Customer的外键

代码语言:javascript
复制
class Customer(models.Model):
    name = models.CharField(max_length=100)

class Route_destinguisher(models.Model):
    name = models.CharField(max_length=100)
    customer = models.ForeignKey(Customer)
    comment = models.TextField(blank=True)
    active = models.BooleanField(default=True)
    rd = models.CharField(max_length=20, default='33763:264')
    def __unicode__(self):
            return self.name

然后,在导入csv时在循环中使用get_or_create()

代码语言:javascript
复制
dataReader = csv.reader(open(csv_filepathname), delimiter=',', quotechar='"')

for row in dataReader:
    route_distinguisher = Route_destinguisher()
    route_distinguisher.customer = Customer.objects.get_or_create(name=row[2].split("-")[0])
    route_distinguisher.name = row[2]
    route_distinguisher.rd = row[1].replace('\t',':')
    route_distinguisher.save()
    print row
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18850572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档