0

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

附图可能有助于理解工作流程。 点击查看图片

这是我的问题的更多详细信息

这是我尝试过的。

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')
4

1 回答 1

0

如果我的问题是对的,那么您想使用关系字段。在我的代码中,您使用与 的关系MyModel来获取f3and f4,因此您不必存储它。(当然,你可以,如果你接受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:您不能在方法中定义字段。

我知道这只是一个逻辑字段,但是您的代码是对关系模型的一般更改。如果你能做到这一点,这意味着你可以随时更改数据库模式。所以有时地址字段存在一次,有时不存在……但是当它不存在时,它会将较早加载的数据擦除到该字段中。这可能会带来巨大的不一致风险。

于 2017-02-03T08:36:17.117 回答