代码之家  ›  专栏  ›  技术社区  ›  forvas

如何通过CSV在Odoo 11中导入字段值转换?

  •  0
  • forvas  · 技术社区  · 5 年前

    我正在通过CSV文件导入产品模板。文件的一列是 description_sale 销售描述 其他语言中的列,以导入其翻译,以便在为客户打印销售订单PDF报表等操作时看到正确的单词。在这种情况下 descrition_sale 字段应以客户的语言显示。

    为了解决这个问题,我需要导入列的翻译。我已尝试创建一个新的CSV文件以导入 ir_translation 桌子。除了 res_id 一个。问题是那不是 Many2one 场,但是 Integer . 所以我不能 res_id/id

    我能用简单的方法做这个手术吗?我正在考虑使用shell和其他复杂的东西,我希望没有必要做这样一个共同的任务。

    0 回复  |  直到 5 年前
        1
  •  0
  •   SlyK    5 年前

    如果我做对了,你有一个CSV,它有两个(或更多)列,应该放在 description_sale 字段:第一列是英文的产品描述,其他列是其他语言的同一字段。

    导入这些翻译的最简单方法是在导入整个CSV本身的同时进行,而不创建另一个CSV。 Sale Descr EN , Sale Descr DE , Sale Descr FR 你要做的就是先创建你的产品,然后像这样更新它:

    DESCR_LANG_MAP = {
        'de_DE': 'Sale Descr DE',
        'en_US': 'Sale Descr EN',
        'fr_FR': 'Sale Descr FR',
    }
    
    prod_tmpl = self.env['product.template'].create(vals)
    
    for lang, col_name in DESCR_LANG_MAP.items():
        prod_tmpl.with_context(lang=lang).write({
            'description_sale': csvrow.get(col_name, '')
        })