我想尝试从销售订单模块中的服务器操作执行查询,并在“更多”菜单中添加操作,但单击操作时发现错误 我在数据库上单独尝试查询并执行得很好 服务器操作中的python代码:
if context.get('active_model') == 'sales.order' and context.get('active_ids'):
self.Invoiced(cr, uid, context['active_ids'], context=context)
def Invoiced(self):
for item in self:
self.env.cr.execute('update sale_order_line as l set qty_invoiced = l.product_uom_qty FROM sale_order s where l.order_id = s.id and s.state = "done"')
self.deadline = self.env.cr.fetchone()
Odoo服务器错误
SyntaxError :扫描字符串文字时的EOL
答案 0 :(得分:0)
在postgresSql中,你不能对字符串值使用双引号:
使用像这样的双引号
SELECT
name as "full name" // here because i'm puttin a space inside the name of the column
您的查询应该是这样的:
self.env.cr.execute("""
update sale_order_line as l set qty_invoiced = l.product_uom_qty FROM sale_order s where l.order_id = s.id and s.state = 'done'
""")
使用三引号,这样您就可以将查询拆分为多行,以便将代码格式化为更易读。对不起我的英文^^。