1

o同じフィールドを選択し、テーブルmo.queueに保存したいprocurement.order

私のコードは次のようになります。

def action_ship_create(self, cr, uid, ids, id_queue, context=None):
    queue_obj = self.pool.get('mo.queue'). browse (cr, uid, id_queue, context=context)
    mo_name = queue_obj.name 
    query_param = (mo_name)
    cr.execute("select origin,create_date,product_uos_qty,product_qty,name,city from mo_queue",(query_param,))
    ads = cr.fetchone()
    name = ads and ads [0] or None
    print "======================"
    print name
    print "======================"

    val = { 'origin': name,
          } 
    print "======================"
    print val
    print "======================"  

    return {'value': val }  


    proc_id = self.pool.get('procurement.order').create(cr, uid, {
        'origin':origin,
    })
    proc_ids.append(proc_id)

印刷結果は次のとおりです。

print name = SO013

print val = {'origin': u'SO013'}

procurement.orderただし、データはテーブルに挿入されません。

4

1 に答える 1

1

あなたのコードは、return ステートメントの後にこのように見えます。何も実行されません。return の前に cdeo を配置します。SQL インジェクションを使用しないなど、多くの調整が必要です。これはお勧めできません。

def action_ship_create(self, cr, uid, ids, id_queue, context=None):
        queue_obj = self.pool.get('mo.queue'). browse (cr, uid, id_queue, context=context)
        queue_model = self.poo.get(queue_obj.name)
        procurement_pool = self.pool.get('procurement.order')
        qsids = queue_model.search(cr, uid, )
        for record in queue_model.browse(cr, uid, qsids):
          if record.origin:
               #this will crate a new record the table procurement.order so 
               #field values may be not enough so you can update logic
               #and If you want to update record value you need a proc ids and you can do it.
               procurement_pool.create(cr, uid, {'origin':record.origin})
        return {'value': {'origin': record.origin}}  

これが私が行方不明であることを私に知らせるのに役立つことを願っています.

ありがとうございました

于 2012-07-20T04:56:28.790 に答える