Odoo:按名称获取字段类型

Cha*_* DZ 1 odoo odoo-8 odoo-9 odoo-10

在 odoo 中,您可以通过字段的 str 名称获取字段的值: exm:

  name = getattr(self, 'name')
Run Code Online (Sandbox Code Playgroud)

我现在想要知道字段名称的类型是:

fields.Char, fields.Many2one, fields.Many2many .....
Run Code Online (Sandbox Code Playgroud)

所以我需要的是这样的

 gettype(self, 'user_id')
Run Code Online (Sandbox Code Playgroud)

现在有办法知道odoo中的字段类型是什么吗?

Emi*_*td. 5

您可以从ir.model.fields模型中搜索。

ir_model_obj=self.env['ir.model.fields']
ir_model_field=ir_model_obj.search([('model','=',model),('name','=',field)])
field_type=ir_model_field.ttype
if field_type=='many2one':
    print "do operation"
Run Code Online (Sandbox Code Playgroud)

这可能对你有帮助。