在odoo中,你可以通过它的str名称得到字段的值: EXM:
name = getattr(self, 'name')
我现在想要知道的是字段名称的类型:
fields.Char, fields.Many2one, fields.Many2many .....
所以我需要的是像这样的东西
gettype(self, 'user_id')
现在有办法在odoo中使用哪种字段?
答案 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