我找到了解决方案,sale.report 不是一个真实的模型,它是一个视图。对于添加字段,您需要覆盖 select 方法。
所以
class sale_report(osv.osv):
_inherit = 'sale.report'
date_order_month = fields.Char(string='Date Month')
date_order_day = fields.Char(string='Date Day')
def _select(self):
select_str = """
SELECT min(l.id) as id,
l.product_id as product_id,
t.uom_id as product_uom,
sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty,
sum(l.product_uom_qty * l.price_unit * (100.0-l.discount) / 100.0) as price_total,
count(*) as nbr,
s.date_order as date,
date_part('month', s.date_order) as date_order_month,
date_part('day', s.date_order) as date_order_day,
s.date_confirm as date_confirm,
s.partner_id as partner_id,
s.user_id as user_id,
s.company_id as company_id,
extract(epoch from avg(date_trunc('day',s.date_confirm)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay,
s.state,
t.categ_id as categ_id,
s.pricelist_id as pricelist_id,
s.project_id as analytic_account_id,
s.section_id as section_id
"""
return select_str