Odoo:按名称

时间:2017-04-29 09:10:00

标签: openerp odoo-8 odoo-9 odoo-10

在odoo中,你可以通过它的str名称得到字段的值: EXM:

  name = getattr(self, 'name')

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

fields.Char, fields.Many2one, fields.Many2many .....

所以我需要的是像这样的东西

 gettype(self, 'user_id')

现在有办法在odoo中使用哪种字段?

2 个答案:

答案 0 :(得分:4)

您可以从 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"

这可能会对你有帮助。

答案 1 :(得分:1)

我想我找到了它。如果某人有一天需要它:

 for name, field in self._fields.iteritems():
      if not isinstance(field, (fields.Many2one, fields.Many2many, fields.One2many)):
           # logic go here