Openerp 如何将结果fetchall填充到列中?

Openerp 如何将结果fetchall填充到列中?,openerp,Openerp,我使用命令fetchall() 表中的所有结果都是这样,我想把所有结果填入这里: class sales_items_line(osv.osv_memory): _name = "sales.items.line" _description = "Sales Items Line" _columns = { 'name': fields.char('Name', size=64), 'qty': fields.char('Quantity', size=64), 'dat

我使用命令fetchall()

表中的所有结果都是这样,我想把所有结果填入这里:

class sales_items_line(osv.osv_memory):
_name = "sales.items.line"
_description = "Sales Items Line"
_columns = {
    'name': fields.char('Name', size=64),
    'qty': fields.char('Quantity', size=64),
    'date': fields.date('Date', required=True),
    'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
    'draft_assigned': fields.boolean('Select'),
    'sale_items_id': fields.many2one('add.sales.items', 'Deposit Items ID'),
}

但是怎么做呢?请帮助我…,cr.execute是不同的类


您必须重写默认的\u get()方法并填充您的列。
以下是代码:

def default_get(self, cr, uid, fields, context=None):
    fields = super(sales_items_line, self).default_get(cr, uid, fields, context=context)
    cr.execute('select a.name as "name", a.state as "state", a.amount_total as "total", a.date_confirm as "date", b.product_uom_qty as "qty" from sale_order a, sale_order_line b where a.id = b.order_id')
    data = cr.dictfetchall()
    for rec in data:
        fields['name'] = rec.get('name', '')
        fields['qty'] = rec.get('qty', 0.00)
        fields['amount'] = rec.get('total', 0.00)
    return data
希望这能解决你的问题。

谢谢。

对不起,我遇到了如下错误:fields=super(sales\u items\u line,self)。default\u get(cr,uid,fields,context=context)TypeError:super(type,obj):obj必须是types的实例或子类型。您在哪里定义了default\u get()方法?它必须在“sales\u items\u line”类中定义。请告诉我“digits\u compute=dp.get\u precision('Account')”是什么意思?
def default_get(self, cr, uid, fields, context=None):
    fields = super(sales_items_line, self).default_get(cr, uid, fields, context=context)
    cr.execute('select a.name as "name", a.state as "state", a.amount_total as "total", a.date_confirm as "date", b.product_uom_qty as "qty" from sale_order a, sale_order_line b where a.id = b.order_id')
    data = cr.dictfetchall()
    for rec in data:
        fields['name'] = rec.get('name', '')
        fields['qty'] = rec.get('qty', 0.00)
        fields['amount'] = rec.get('total', 0.00)
    return data