“dict”对象没有属性“execute”

2024-10-01 02:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有python代码(odoo)

    @api.one
def mps_value(self,cr):
    fc = self.forecast_id
    cr.execute("""SELECT SUM(sol.product_uom_qty) 
                FROM sale_order_line AS sol , sale_order AS s , forecastmps_forecast AS fc , forecastmps_period AS pd 
                WHERE fc.id = %s AND sol.product_id = fc.product_id AND fc.period_id = pd.id AND pd.start_date <= sol.create_date 
                AND sol.create_date <= pd.end_date AND s.state = \'done\' AND sol.order_id = s.id""", (fc,))
    ret = cr.fetchone()[0]
    return ret

我运行它,这是错误的

^{pr2}$

我怎样才能修好它呢。谢谢您。在


Tags: andselfiddateasordersaleproduct
3条回答

你应该试着跟着

从方法定义中删除cr(游标),并且在调用此函数时不要传递任何参数。在

@api.one
def mps_value(self):
    fc = self.forecast_id.id
    self.env.cr.execute("""SELECT SUM(sol.product_uom_qty) 
                FROM sale_order_line AS sol , sale_order AS s , forecastmps_forecast AS fc , forecastmps_period AS pd 
                WHERE fc.id = %s AND sol.product_id = fc.product_id AND fc.period_id = pd.id AND pd.start_date <= sol.create_date 
                AND sol.create_date <= pd.end_date AND s.state = \'done\' AND sol.order_id = s.id""", (fc,))
    ret = self.env.cr.fetchone()[0]
    return ret

要执行查询,请尝试以下操作:

self.env.cr.execute(<your query>)

或者

^{pr2}$

在新api中,不需要在函数参数中使用cr。在

你在混合v7和v8。 删除cr参数并使用ORM方法来计算总和。 此外,您返回的值是“丢失”的,即不在任何地方使用。。。在

相关问题 更多 >