如何使用CSV文件的记录ID进行编程?

时间:2018-02-13 09:40:09

标签: python csv odoo-8 odoo

如果我有包含种子数据的CSV文件。然后我想在CSV文件中使用记录进行编程。我怎么能在Odoo做到这一点?

例如

我的CSV种子文件product.category.csv

id       name
ctgry_1  Custom Category

在我的模型中,我想这样做:

product_template = self.env["product.template"]
product_new = product_template.create({
    "name" : "Custom Template",
    "categ_id" : # I want to use ctgry_1 here, but it does not work
})

我应该先搜索我的类别ID吗?但这对我来说似乎不对。我们不应该能够使用CSV中的标识符吗?

1 个答案:

答案 0 :(得分:1)

如果我理解你想要将一些外部标识符转换为数据库ID,对吧?然后你只需要得到这样的id:

product_template = self.env["product.template"]
product_new = product_template.create({
    "name" : "Custom Template",
    "categ_id" : self.env.ref('ctgry_1').id
})

无论如何,如果您使用CSV导入界面导入数据,您应该使用以下格式:

"module_name.record_identifier" > "__import__.ctgry_1"

您可以在此处查看所有标识符:设置>序列&标识符>外部标识符

注意:如果导出数据,则会自动创建记录的外部标识符。如果使用外部标识符(id列)导入数据,则也会将其分配给记录