如何从ir.attachment中获取所有记录并在Odoo 13中进行搜索



根据这个答案:什么是attachment=True do odoo 13

执行self.env['ir.attachment'].search([])时,不会得到设置了res_field的记录,顺便说一句,这些记录通常是表的大部分。

当然,我需要获取确实设置了res_id字段的记录。有没有黑客可以通过ORM搜索做到这一点?

还是我必须执行SQL查询?我想你们很多人都需要做一次。尊重ORM有什么好主意吗?

我认为如果你想尊重ORM,你会自定义搜索方法。

我习惯了一次搜索方法,你可以试试

from odoo.osv import expression
class Test():
def search(records, domain, *args, **kwargs):
return search.origin(records, expression.AND([[('id', '=', instance.id)], domain]), *args, **kwargs)
self.registry['odoo.instance']._patch_method('search', search)

如果尝试失败,则必须执行SQL查询

对不起,我英语学得不太好。我正在努力学习。

Odoo将在域中添加res_field=False(在更改搜索域之前,它将检查域中是否存在idres_field字段(,因此如果您提供idres_field,Odoo将不会强制您搜索res_field设置为False的记录。

以下域应返回ir.attachment:中的所有记录

['|', ('res_field', '!=', False), ('res_field', '=',False)]

相关内容

  • 没有找到相关文章

最新更新