1

次のようなテーブルがあります。

class fnx_sr_shipping(osv.Model):
    _name = 'fnx.sr.shipping'
    _description = 'shipping & receiving entries'
    _inherits = {
       'res.partner': 'partner_id',
       }
    _order = 'appointment_date desc, appointment_time asc'

    _columns = {

       .
       .
       .
       'partner_id': fields.many2one(
            'res.partner',
            'Partner',
            required=True,
            ondelete='restrict'),
       .
       .
       .

required=TrueOpenERP に必要です (存在しない場合は、OE が追加します)。

Web インターフェイスを使用すると、新しい出荷記録を作成し、既存のパートナーを選択できます。partner_idただし、XML-RPC ( shipping record create 呼び出しで s を指定)を使用して同じことを試みると、 OpenERP はres.partnerデフォルト設定を使用して新しいレコードを作成しようとしますが、必須フィールドにはデフォルトがないため ( name)。

私が使用している XML-RPC コードは次のとおりです。

import openerplib
OE = PropertyDict()          # allows attribute-style access for keys
OE.conn = openerplib.get_connection(
        hostname='xxx',
        database='yyy',
        login='zzz',
        password='...'
OE.res_partner = conn.get_model('res.partner')
.
.
.
values['partner_id'] = 77     # or whatever it actually is ;)
OE.fnx_shipping.create(values)

id渡される s が正しいことを確認しました。

これは私のコードのバグですか、それとも OpenERP のバグですか?

4

1 に答える 1