python - OpenERP : fetch record with same name

标签 python odoo

如何在 openerp(或相同的其他字段)中检索具有相同名称值的记录?

最佳答案

使用手动SQL查询分组的解决方案name正如 Ruchir 所建议的那样,这可能是最简单的,但有点低级。您也可以使用 read_group() 来做到这一点执行类似 GROUP BY 的 API 方法查询,但不绕过访问控制机制和模型业务逻辑。

read_group方法采用搜索域(类似于 search() )、要读取的字段列表(类似于 read() )和要分组的字段列表。此方法记录在 OpenERP API 中. 它返回一个有序的字典列表,其中包含分组数据和一些额外的值,包括每组中的记录数,存储在名为 <grouped_field>_count 的键中。 ,您可以使用它来查找重复项。

例如,如果您查找重复的 name值,没有任何其他搜索条件:

def duplicate_names(self, cr, uid, context=None):
    # Note: context not propagated for brevity of example
    groups = self.read_group(cr, uid, [], ['name'], ['name'])
    duplicate_names = [g['name'] for g in groups if g['name_count'] > 1]
    print "Duplicates names:", duplicate_names

    if duplicate_names:
        # It's easy to find out the IDs of duplicate records for each name,
        # here is for the first one
        duplicate_ids = self.search(cr, uid, [('name', '=', duplicate_names[0])])
        print "Duplicate IDs for %r: %s" % (duplicate_names[0], duplicate_ids)

关于python - OpenERP : fetch record with same name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335945/

相关文章:

odoo - 更改发票统计信息时,获取 "odoo.exceptions.ValidationError: (' 已过帐的日记帐分录必须具有每个公司的唯一序列号”

python - Pandas 数据框使每个唯一的 ID 号 NAT

python - YCM 没有找到我的标题?

python - 如何在 Python 脚本的后台播放音频(playsound)?

odoo - 在 Odoo/Open ERP 中自定义仪表板

nginx - 使用 docker 在 nginx 后面运行 Odoo

python - Openshift:OSError Errno 98 无法更新服务器

python - 在 BeautifulSoup 中将 <an> </a> 替换为 href

odoo-8 - 如何跳过 Odoo 实例中的演示数据

python - 当我在 Odoo 8 中编辑表单时,为什么标题显示记录 ID 号?