如何通过在其他字段中输入值来自动选中复选框?

2024-05-22 19:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经为酒店客房管理制作了一个模块,我想用Python检查房间的可用性。我接受了一个名为available = fields.Boolean()的复选框。现在,我希望当我输入check_in_time时,它将被自动检查。那么,我该怎么做呢?我接受了 check_in_time=fields. Datetime()。我已经试过了。。。在

class Hotel_Management(models.Model):

    check_in_time = fields. Datetime()
    available = fields.Boolean()

    @api.onchange('check_in_time')
    def auto_check(self):
        for a in self:
            if a.check_in_time:
                a.available=True
                print a.available
            else:
                print a.available

但是它只在终端中改变复选框的值……而不是在数据库中……它每次都默认为“false”。那么,告诉我如何更改数据库中复选框的值?在


Tags: 模块inself数据库fieldsdatetimetimecheck
2条回答

是的,你的密码是对的。但您需要使用该值重写write函数,例如:

@api.multi
def write(self, vals):
    res = super(Hotel_Management, self).write(vals)
    if 'check_in_time' in vals:
       if vals['check_in_time']:
            vals['available'] = True
        else:
            print vals['available']
    return res

你的代码是正确的。值将在客户端的“保存”操作时保存。onchange将实际在客户端保存该值。depends将直接写入数据库。但是onchange应该足够了。在

相关问题 更多 >

    热门问题