0

我需要在 fields_view_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

它返回我想要的字段的值,但在 treeView 中,每一行都是相同的,比如 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', '编号':4}]

每行一个

如何获得正确行所需的字段值。?

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

4

1 回答 1

0

fields_view_get提供以允许您更改/创建定义视图的 XML,而不是数据。

您需要做的fields_view_get是将您的字段放到视图上。但是,仅在非常不寻常的情况下才进行覆盖,fields_view_get在这种情况下,您需要动态地以一种无法通过 XML 视图中的属性和状态轻松实现的方式来实现。

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

于 2013-07-10T22:57:47.930 回答