Openerp 如何将结果fetchall填充到列中?
我使用命令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
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