我正在 Odoo 10 中的服务器操作中创建日志条目。这是服务器操作 Python 代码:
if record:
env['ir.logging'].create({
'type': 'server',
'name': 'test',
'level': record._name,
'path': 'test',
'line': 'test,
'func': '#',
'message': '#'
})
record._name
的 level
行值以字符串形式获取当前模型的名称,例如 product.product
,或sale.order
。
但是,我认为 _name
属性不应该成为公共(public) API 的一部分。有谁知道检索模型名称的公共(public)方法吗?
model
变量也可在服务器操作中使用,该操作返回 product.product()
。但是,想要product.product
,不带括号。我意识到我可以使用字符串方法来修剪 ()
,但我想知道是否有一种预期的方法可以仅将模型名称作为字符串获取。
有什么想法吗?
最佳答案
我没有看到其他方法。 _name
是“私有(private)”,您可以使用 __str__
,它将为您提供当前 RecordSet
的模型名称和 ID。 odoo 模型名称的正则表达式是 r'^[a-z0-9_.]+$'
,所以我建议,您已经知道的是:修剪掉最后的所有内容。
关于Odoo 10 从记录中获取型号名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310167/