制作批准按钮

时间:2013-01-11 04:31:58

标签: python openerp

我是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)

    ...

2 个答案:

答案 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()函数。