Openerp odoo 9中的可单击状态栏

Openerp odoo 9中的可单击状态栏,openerp,odoo-9,odoo-10,Openerp,Odoo 9,Odoo 10,单击状态栏中的状态后,我需要更改状态,下面是我的示例,我还需要添加什么 state = fields.Selection([ ('draft', 'New'), ('pending', 'To Renew'), ('close', 'Expired'), ], string='Status', default='draft') @api.multi def set_as_pending(self): re

单击状态栏中的状态后,我需要更改状态,下面是我的示例,我还需要添加什么

state = fields.Selection([
        ('draft', 'New'),
        ('pending', 'To Renew'),
        ('close', 'Expired'),
    ], string='Status', default='draft')


    @api.multi
    def set_as_pending(self):
        return self.write({'state': 'pending'})

    @api.multi
    def set_as_close(self):
        return self.write({'state': 'close'})
.xml


clicable状态栏和函数之间的链接必须是onchange方法。我想你可以添加如下内容:

@api.onchange('state')
def onchange_state(self):
    if self.state == 'pending':     
        self.write({'state': 'pending'})
    #... your other states

我希望这对你有帮助

可点击应等于
布尔值
整数


clickable=“True”
而不是
clickable=“1”

要具有可点击的工作状态,字段的类型应为manyOne。Clickable不适用于“选择”。



至少它达到了onchange?状态栏中的单击将已经更改了
状态
,因为在视图中它表示字段(您的xml显示了这一点)。@CZoellner Tnx对于答案,在我的解决方案中,单击后我看不到任何更改。我不知道问题出在哪里。
@api.onchange('state')
def onchange_state(self):
    if self.state == 'pending':     
        self.write({'state': 'pending'})
    #... your other states