Openerp 使用ORM方法获取所需的数据?

Openerp 使用ORM方法获取所需的数据?,openerp,Openerp,我需要在fields\u view\u get方法和 我使用ORM方法来实现这一点。我的代码: class res_partner(osv.osv): _inherit = 'res.partner' def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): if context is None:

我需要在fields\u view\u get方法和 我使用ORM方法来实现这一点。我的代码:

 class res_partner(osv.osv):

_inherit = 'res.partner'


def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):


    if context is None:
        context = {}

    partner_obj = self.pool.get('res.partner')
    ids_partner = partner_obj.search(cr, uid, [], context=context)              
    partner_name = partner_obj.browse(cr, uid, ids_partner, context=context)
    element = partner_obj.browse(cr,uid,ids_partner[0]).numcte

    res = super(res_partner,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)


    newcte=test_name.numcte


    doc = etree.XML(res['arch'])

    if view_type == 'tree':

        for node in doc.xpath("//field[@name='numcte']"):
               node.set('string', 'numcte')
        for node in doc.xpath("//button[@name='icono']"):
               node.set('icon', newcte) 

    res['arch'] = etree.tostring(doc)
    return res


_columns = {
    'numcte': fields.text('numero cliente'),
}

 res_partner()
我的问题是,当我使用例如:

 element = partner_obj.browse(cr,uid,ids_partner[0]).numcte
它返回我想要的字段值,但在树视图中,每一行的值都是相同的,比如A001、A001、A001,而不是A001、A002、A003

在这种情况下,ids_partner[0],如何使此数字为动态的,并且每行都在变化

或者,在使用此功能的情况下:

 my_data  = partner_obj.read(cr, uid, ids_partner, ["numcte"], context=context) 
将元组返回给我,如下所示:

[{'numcte':u'A001','id':3},{'numcte':u'A002','id':2},{'numcte':u'A003','id':4}] [{'numcte':u'A001','id':3},{'numcte':u'A002','id':2},{'numcte':u'A003','id':4}] [{'numcte':u'A001','id':3},{'numcte':u'A002','id':2},{'numcte':u'A003','id':4}]

每行一个

如何获取正确行所需的字段值


谢谢大家,我在这方面花了一段时间,所以任何帮助都是有用的。

字段\u视图\u get
允许您更改/创建定义视图的XML,而不是数据

fields\u view\u get
中,您需要做的是将字段放到视图中。但是,重写
字段\u view\u get
仅在非常不寻常的情况下才能完成,在这种情况下,您需要以动态的方式对视图进行修改,而这种方式是使用XML视图中的属性和状态很难实现的

通常的模式是用XML创建一个视图,该视图扩展partner树视图,并使用XPATH表达式将字段添加到正确的位置。如果您的字段是一个新字段,则还需要创建一个继承res_partner模型的新模型,并在_列中添加新字段