0

SQLコマンドを使用してデータベースのフィールドを選択します

 partner_obj = self.pool.get('res.partner'). browse (cr, uid, ids, *args)
                partner_name = partner_obj.ids
                customer = (partner_name)
                cr.execute("select b.city from res_partner a, res_partner_address b where b.partner_id = a.id AND a.id = %s",(customer))
                ads = cr.fetchone()
                city = ads and ads[0] or None

ただし、文字列に変換する必要があることはわかっています。私はすでにこのように(上記のコード)作ろうとしていますが、まだうまくいきません。

こんな風に作ったのは、SOが都市のメッセージにあることを知りたいからです。

助けてください

ありがとうございました

4

2 に答える 2

0

OpenERP 都市の最初のポイントは関係フィールドではないため、sql をトリガーして都市を取得すると名前が取得されますが、都市コードを格納するカスタマイズがある場合は、都市から一致する都市を特定するために、もう 1 つの SQL インジェクションが必要です。コード。

res_partner_address を含む関係フィールドとして都市がある場合、その場合、都市フィールドには関係レコード テーブルの ID のみが格納されるため、SQL インジェクションを使用すると、住所にリンクされている都市の ID が取得されます。

何か不足している場合はお知らせください。ありがとうございます。

于 2012-07-16T07:11:51.420 に答える
0

生の SQL を実行する必要はないと思います。ブラウズ レコードを使用して、必要な情報を取得できるはずです。あなたの質問から何を望んでいるのか正確にはわかりませんでしたが、パートナー ID のリストを渡しており、パートナーの住所が含まれているすべての都市名のリストを返したいと仮定します。テストしていません。このコードは単なる提案です。

def find_cities(self, cr, uid, partner_ids, context=None):
    cities = set()
    partner_obj = self.pool.get('res.partner')
    for partner in partner_obj.browse(cr, uid, partner_ids, context):
        for address in partner.address:
            if address.city:
                cities.add(address.city)
    return list(cities)
于 2012-07-16T16:39:40.930 に答える