我在Odoo 10中的服务器操作中创建一个日志条目。这是服务器操作Python代码:
if record:
env['ir.logging'].create({
'type': 'server',
'name': 'test',
'level': record._name,
'path': 'test',
'line': 'test,
'func': '#',
'message': '#'
})
level
record._name
的行值会将当前模型的名称作为字符串,例如product.product
或sale.order
。
但是,我不认为_name
属性不属于公共API的一部分。有没有人知道检索模型名称的公共方法?
model
变量在服务器操作中也可用,返回product.product()
。但是,想要product.product
,没有括号。我意识到我可以使用字符串方法来修剪()
,但我想知道是否有一种方法可以将模型的名称作为字符串。
有什么想法吗?
答案 0 :(得分:1)
我没有看到另一种方式。 _name
是"私人"并且您可以使用__str__
,它将为您提供模型名称和当前RecordSet
的ID。 odoo的模型名称的正则表达式是r'^[a-z0-9_.]+$'
,所以我建议,你已经知道的事情:最后修剪一切。