Odoo 8 - 如何更新Many2one字段值?

时间:2016-03-27 13:06:12

标签: python-2.7 odoo-8

我试图制作能够让员工获得签证余额的模块。 我试图做的是,当一个员工分配签证号时,它会将计数器used_visa改为1。 所以我的问题是如何更新在签证中的柜台.balance.balance.line'在' hr.employee'中选择签证号码时的模型模型

这是我的代码:

class hr_visa_balance(models.Model):
_name = "hr.visa.balance"
_rec_name = "visa_no"

visa_no = fields.Char("Visa Number")
approval_date = fields.Date('Approval Date')
visa_line_ids = fields.One2many('visa.balance.line', 'visa_line_id', 'Visa Balance Details')


class visa_balance_line(models.Model):
_name = 'visa.balance.line'
_rec_name = "visa_line_id"

profession = fields.Char()
gender = fields.Selection([('m','Male'),('f','Female')], 'Gender')
country_id = fields.Many2one('res.country', 'Nationality')
available_visa = fields.Integer('Available')
used_visa = fields.Integer('Used')
visa_line_id = fields.Many2one('hr.visa.balance', 'Visa Balance Details')


class hr_employee(models.Model):
_inherit = 'hr.employee',

visa_line = fields.Many2one('visa.balance.line', 'Visa Balance Details')


@api.onchange('visa_line')
def onchange_visa_no(self):
    ~ code here ~

1 个答案:

答案 0 :(得分:0)

首先,我没有得到你的结构, 我认为在员工中你必须选择多个“hr.visa.balance”对象, 你正在选择“visa.balance.line”

现在你需要做什么:

在hr.employee中给出一个hr.visa.balance中的一个,并且在visa_no的on_change上你必须写逻辑,

注意:您可以直接在“hr.visa.balance”这个对象中计算签证余额。

无需在visa.balance.line中使用此字段。