Openerp 如何通过单击继承模块中的按钮来更改状态

Openerp 如何通过单击继承模块中的按钮来更改状态,openerp,Openerp,我创建了一个新模块并继承了stock.picking模块。在该模块中,添加了“准备转移”和“仓库中转移”状态之间的“已接受”状态。标题中有一个接受按钮。 单击“接受”按钮时,函数正在执行,但状态未更改为“接受”状态。现有模块的其他函数工作正常 我在现有模块中添加了新的接受选择字段。i、 电子拣选 .py文件 请尝试以下操作: def chnage_state_accept(self, cr, uid, ids, context=None): self.write(cr,uid,ids,{

我创建了一个新模块并继承了stock.picking模块。在该模块中,添加了“准备转移”和“仓库中转移”状态之间的“已接受”状态。标题中有一个接受按钮。 单击“接受”按钮时,函数正在执行,但状态未更改为“接受”状态。现有模块的其他函数工作正常

我在现有模块中添加了新的接受选择字段。i、 电子拣选 .py文件

请尝试以下操作:

def chnage_state_accept(self, cr, uid, ids, context=None):
    self.write(cr,uid,ids,{'state':'accept'},context=context)
    return <<return value if needed>>
def-chnage\u-state\u-accept(self、cr、uid、id、context=None):
write(cr,uid,id,{'state':'accept'},context=context)
返回

您不需要浏览记录
库存。拾取
以保存值。
当您编写
stok_obj.state='accept'
时,您刚刚更改了实例值,数据库中不会保存任何内容(自odoo-8起可用)。
要将
状态
更改为
接受
,可以使用
写入
功能:

openerp

def execute_accept_button(self, cr, uid, ids, *args):

    self.write(cr, uid, ids, {'state': 'accept'})
    return True
@api.multi
def execute_accept_button(self):

    self.write({'state': 'accept'})
    return True
奥多

def execute_accept_button(self, cr, uid, ids, *args):

    self.write(cr, uid, ids, {'state': 'accept'})
    return True
@api.multi
def execute_accept_button(self):

    self.write({'state': 'accept'})
    return True

我试过了,但还是不起作用。当我在数据库中从“分配”更改为“接受”时,只有它在更改。@lipika return
True
更改状态后,我只添加了所需的行。我希望这将对您有所帮助。我尝试了它,但仍然不起作用。当我在数据库中从assign更改为accept时,只有它在更改。首先,我要感谢您的快速响应。您可以共享添加新状态“accept”的代码吗?在stock.py文件的stock.picking类中,我在列中添加了accept selection字段。您可以共享添加新状态的确切代码吗。您使用的是新api还是旧api?