从父字段获取值 - Odoo10

时间:2017-02-02 22:36:07

标签: python odoo odoo-10

我在表单中有两个字段F1和F2。 Field F1是一个弹出窗口。在弹出时,它还有另外两个字段F3和F4。我需要访问存储在F3中的值并将其存储在F2中。

附加图片可能有助于理解工作流程。 Click to view this image

以下是我的问题的更多细节

这是我尝试过的。

class JobJob(models.Model):
    _name='job.job'
    address = field.Char('Address')


Class Dailylog(models.Model):
    job_id = fields.Many2one('job.job', 'Job')
    def check(self):
        address = fileds.Char(related='job_id.address')

1 个答案:

答案 0 :(得分:0)

如果我对你的问题说得对,你想使用关系字段。 在我的代码中,您使用与MyModel的关系来获取f3f4,因此您无需存储它。 (当然,如果你在关系字段定义中使用store=True,当你不存储它时,你就不能在那些字段中搜索。)

class MyModel(models.Model):
    _name = 'my.model'

    f3 = fields.Char(string='F3')
    f4 = fields.Char(string='F4')

class MyOtherModel(models.Model):
    _name = 'my.other.model'

    f1 = fields.Many2one('my.model', 'F1')
    f2 = fields.Char('F2')
    f3 = fields.Char(related='f1.f3')
    f4 = fields.Char(related='f1.f4')

现在您有两个字段(f3f4),因此很容易在表单上显示它们。

编辑问题已更改

TL; DR :您无法在方法中定义字段。

我知道这只是一个逻辑领域,但您的代码是关系模型的一般变更。如果您可以这样做,那意味着您可以动态更改数据库架构。因此,有时一次会解决字段退出问题,有时候不会...但是当它不存在时,它会将先前加载的数据擦除到此字段中。这可能存在巨大的不一致风险。