0

Many2one フィールドには 1 つのフィールドしか表示されないため、次のように、Many2one の 2 つのフィールドに表示する関数を作成することを考えました。

def get_services(self, cr, uid, ids, context=None):
        values = cr.execute("""SELECT name, entity
                            FROM services WHERE id = 3""")
        values.fetchall()
        for value__ in values:
            if value__:
                return {'value': {'service_id': value__[0] + " | " + value__[1]},} # Example: "Service 1 | Google"

まず、それは可能ですか?これを行うモジュールはありますか?だから私はそれを見ることができました。

次に、この方法で関数を呼び出します。

_columns = {
        'service_id':fields.function(get_services, type = 'many2one', obj = 'services_getservices_function', method = True, string = 'Service'),

エラーは発生していませんが、フィールドが画面に表示されません。

4

2 に答える 2

1

必要なのはname_get、サービス モデルの上書きです。

https://doc.openerp.com/trunk/server/api_models/#openerp.osv.orm.BaseModel.name_getを参照してください

于 2013-09-19T20:44:34.587 に答える
0

解決しました。

名前とエンティティを含む別のフィールドを作成しました。

'name_plus_entity':fields.char('All', size = 300),

次に、「onchange」関数を作成したため、フィールド「name」またはフィールド「entity」が変更されるたびに、フィールド「name_plus_entity」は次のようになります:「name」+「|」+エンティティ。

また、フォーム XML の「name_plus_entity」フィールドを非表示にします。

于 2013-09-19T10:30:26.413 に答える