我是Python和openerp的新手。当我想制作一个简单的批准按钮来改变状态时,我有一个问题,只是为了改变状态。
错误消息:未找到处理程序。
这是我的剧本:
XML:
<button name="approve" states="draft" string="Approve" type="object"/>
蟒:
...
class student(osv.osv):
_name = "sim.student"
_description = "Data Siswa"
def approve(self, cr, uid, ids, context=None):
"""
confirm one or more order line, update order status and create new cashmove
"""
#cashmove_ref = self.pool.get('lunch.cashmove')
orders_ref = self.pool.get('sim.student')
for order_line in orders_ref.browse(cr, uid, ids, context=context):
if order_line.status != 'confirmed':
#cashmove_ref.create(cr, uid, values, context=context)
order_line.write({'status': 'confirmed'}, context=context)
return order_line.create(cr, uid, ids, context=context)
...
答案 0 :(得分:0)
您的order_line
是可浏览对象,而不是模型,write()
应该在Model对象上完成。
而不是:
order_line.write({'status': 'confirmed'}, context=context)
尝试:
orders_ref.write(cr, uid, order_line.id, {'status': 'confirmed'}, context=context)
答案 1 :(得分:0)
您的错误是因为函数返回时调用的create()
函数。你只需要return True
。此外,create函数没有id作为参数。您需要传递包含学生记录所需的字段和值的字典。如果您要复制当前学生记录,请使用copy()函数。