我在表单中有两个字段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')
答案 0 :(得分:0)
如果我对你的问题说得对,你想使用关系字段。
在我的代码中,您使用与MyModel
的关系来获取f3
和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')
现在您有两个字段(f3
和f4
),因此很容易在表单上显示它们。
编辑(问题已更改)
TL; DR :您无法在方法中定义字段。
我知道这只是一个逻辑领域,但您的代码是关系模型的一般变更。如果您可以这样做,那意味着您可以动态更改数据库架构。因此,有时一次会解决字段退出问题,有时候不会...但是当它不存在时,它会将先前加载的数据擦除到此字段中。这可能存在巨大的不一致风险。