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、A002、A003 ではなく、この A001、A001、A001 のように、各行で同じです。

この場合、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}]

各行に 1 つ

正しい行に必要なフィールドの値を取得するにはどうすればよいですか。?

お時間をいただきありがとうございます。私はこれにしばらく携わっているので、どんな助けも役に立ちます。

4

1 に答える 1

0

fields_view_getデータではなく、ビューを定義する XML を変更/作成できるようにするために提供されています。

あなたがする必要があるのfields_view_getは、フィールドをビューにドロップすることです。ただし、オーバーライドfields_view_getは、XML ビューの属性と状態では簡単に実現できない方法でビューを動的にする必要がある、非常にまれなケースでのみ行われます。

通常のパターンは、パートナー ツリー ビューを拡張し、XPATH 式を使用して正しい場所にフィールドを追加する XML でビューを作成することです。フィールドが新しいフィールドの場合は、res_partner モデルを継承する新しいモデルを作成し、新しいフィールドを _columns に追加する必要もあります。

于 2013-07-10T22:57:47.930 に答える