Openerp Odoo:按名称获取字段类型

Openerp Odoo:按名称获取字段类型,openerp,odoo-8,odoo-9,odoo-10,Openerp,Odoo 8,Odoo 9,Odoo 10,在odoo中,您可以通过字段的str名称获取字段值: exm: name=getattr(self,“name”) 我现在想知道字段名的类型是什么: fields.Char、fields.manyOne、fields.Many2many。。。。。 所以我需要的是这样的东西 gettype(self'user\u id') 有没有办法知道odoo中的字段类型?odoo在\u fields属性中提供了这些信息,我认为这样更好,因为在Python端发生的每件事都不需要联系数据库,特别是在我的情况

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

name=getattr(self,“name”)
我现在想知道字段名的类型是什么:

fields.Char、fields.manyOne、fields.Many2many。。。。。
所以我需要的是这样的东西

gettype(self'user\u id')

有没有办法知道odoo中的字段类型?

odoo在
\u fields
属性中提供了这些信息,我认为这样更好,因为在
Python
端发生的每件事都不需要联系数据库,特别是在我的情况下,我的模型有30多个

用于名称,字段在self中。\u fields.iteritems():
如果不存在(field,(fields.Many2one,fields.Many2many,fields.One2many)):
#逻辑在这里
如果只想验证一个字段:

如果不存在(self._字段[field_name],(fields.manyOne,…):#

Odoo在
\u字段
属性中提供了这些信息,我认为这样更好,因为在
Python
端发生的每件事都不需要联系数据库,特别是在我的情况下,我的模型有30多个
30
字段:

用于名称,字段在self中。\u fields.iteritems():
如果不存在(field,(fields.Many2one,fields.Many2many,fields.One2many)):
#逻辑在这里
如果只想验证一个字段:

如果不存在(self._字段[field_name],(fields.manyOne,…):#

您可以从ir.model.fieldsmodel中搜索

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"

这可能会对您有所帮助。

您可以从ir.model.fieldsmodel中搜索

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"
这可能对你有帮助