You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 15中如何将查询返回值正确添加至选择字段?

Odoo 15选择字段关联函数显示异常的解决方法

你的问题出在动态生成Selection选项的函数返回格式不符合Odoo要求:

  • Odoo要求Selection字段的动态选项函数必须返回二元组组成的列表,每个元组格式为(存储值, 界面显示标签)
  • 你当前的函数返回的是单值列表,导致界面解析异常

修复后的函数代码:

def get_famille_list(self):
    all_fam = []
    query = """ SELECT x FROM product_template WHERE x !='' """
    self.env.cr.execute(query)
    data = self.env.cr.fetchall()
    for fam in data:
        # 将每个值转为(存储值, 显示标签)的二元组
        all_fam.append((fam[0], fam[0]))
    return all_fam

如果要更符合Odoo开发规范,推荐用ORM查询替代原生SQL,避免直接操作游标:

def get_famille_list(self):
    # 筛选出x字段不为空的产品模板
    product_templates = self.env['product.template'].search([('x', '!=', '')])
    # 生成二元组列表,自动过滤空值
    return [(pt.x, pt.x) for pt in product_templates if pt.x]

调整后重新运行,选择字段就能正常显示x1、x2、x3这类选项了。

内容的提问来源于stack exchange,提问作者Zoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:15:47