-1

我想问一下。查询数据库时出现的错误

def onchange_dept_from(self, cr, uid, ids, partner):
    print partner
    if partner != False:
        # note
        cr.execute('select z.name, z.id from res_partner x, account_account z where x.property_deposit_receivable = z.id AND x.id=%s',(partner,)),
        temp = cr.fetchone()
        name = temp and temp[0] or None

        cr.execute('select z.name, z.id from res_partner x, account_account z where x.property_deposit_payable = z.id AND x.id=%s',(partner,)),
        ads = cr.fetchone()
        name2 = ads and ads[0] or None

        val = {
            'dept_from':name,
            'dept_to':name2,
        }
        return {'value':val }

冲突的“id”的可能性来自我用来移动到 account.move 的函数

def get_move_line(self, cr, uid, deposit, type, context=None):
    return {
            'type': type,
            'name': deposit.name or 'add',
            'debit': type == 'dest' and deposit.amount or 0.0,
            'credit': type == 'src' and deposit.amount or 0.0,
            'account_id': type == 'src' and deposit.dept_from.id or deposit.dept_to.id,
            'date': deposit.date,
            'deposit_id': deposit.id
    }

我想可能是因为当时我不得不查询字符串,而函数get_move。我正在寻找一个整数。我应该怎么办?我没主意了。请帮我

4

1 回答 1

1

我已经解决了这个问题。我只是添加查询以搜索 id。

def get_move_line(self, cr, uid, deposit, type, context=None):
    cr.execute('select b.property_deposit_payable, b.property_deposit_receivable from deposit_travel a, res_partner b where a.partner = b.id and b.id = %s',(deposit.partner.id,)),
    tmp = cr.fetchone()
    dep_pay = tmp and tmp[0] or None 
    dep_rec = tmp and tmp[1] or None
    return {
            'type': type,
            'name': deposit.name or 'add',
            'debit': type == 'dest' and deposit.amount or 0.0,
            'credit': type == 'src' and deposit.amount or 0.0,
            'account_id': type == 'src' and dep_pay or dep_rec,
            'date': deposit.date,
            'deposit_id': deposit.id
于 2012-08-03T09:47:06.700 回答