2

私は OpenERP-7 の検索モジュールに取り組んでいます。フィールドに表示できるように、ドメインでレコードを返しています。問題は、ドメインで新しく作成されたレコードがフィールドに表示されないことです。コンソールにドメインの値を出力しているときに、目的のレコードを取得します。しかし、自分のフィールドでそれらを表示できない理由がわからないようです。どちらもエラーが発生していません。

機能の私のドメイン部分は次のとおりです。

 res = cr.fetchall()
    for p_id,p_name in res:
        domain.append((p_id))
    print domain
    return {'domain':{'my_products':[('id','in',domain)]}}
4

1 に答える 1

0

one2many のレコードを表示するには、'domain' を使用する必要はありません。one2many レコードを保存するには、テンプレートで 'value' を使用する必要があります (server/bin/openerp/osv/fields.py の 420 行付近を参照)。 :

# ---------------------------------------------------------                     
# Relationals fields                                                            
# ---------------------------------------------------------                     
#                                                                                
#                                                                               
# Values: (0, 0,  { fields })    create                                         
#         (1, ID, { fields })    update                                         
#         (2, ID)                remove (delete)                                
#         (3, ID)                unlink one (target id or target of relation)   
#         (4, ID)                link                                           
#         (5)                    unlink all (only valid for one2many)           
#                                                                               
#CHECKME: dans la pratique c'est quoi la syntaxe utilisee pour le 5? (5) ou (5, 0)?

したがって、あなたの場合、これでうまくいくと思います:

res = cr.fetchall()
for p_id,p_name in res:
    domain.append((p_id))

return {'value': {'my_products': [(4, x) for x in domain]}}
于 2014-12-03T14:03:42.843 に答える