Python 如何从Odoo中另一个视图中的另一个字段自动填充自定义视图中的字段?
我想为每个项目都具有3个属性的某些项目的合同创建许可 我有4种型号:Python 如何从Odoo中另一个视图中的另一个字段自动填充自定义视图中的字段?,python,odoo,odoo-12,Python,Odoo,Odoo 12,我想为每个项目都具有3个属性的某些项目的合同创建许可 我有4种型号: 合同 净空 项目 清拆项目 当我在清除模型的自定义视图中时,我选择了一个合同 从manyOne关系字段 然后尝试在中创建一个Clearance\u item\u rel记录 Clearance\u item\u rel型号 当我单击创建清除项目\u rel记录时,它会打开 新窗口中的自定义视图 我想在第一个视图中使用所选的合同id自动填充清除项目中的合同id字段,因为用户刚刚在第一个视图中选择了它 注意:clearance\u
manyOne
关系字段
然后尝试在中创建一个Clearance\u item\u rel
记录
Clearance\u item\u rel
型号
当我单击创建清除项目\u rel
记录时,它会打开
新窗口中的自定义视图
我想在第一个视图中使用所选的合同id自动填充清除项目
中的合同id
字段,因为用户刚刚在第一个视图中选择了它
注意:clearance\u id
在我创建
Clearance\u item\u rel
从Clearance自定义视图记录,但
contract\u id
不行,这是我的问题
合同:
class Contract(models.Model):
_name = 'clearance.contract'
clearances = fields.One2many('clearance.clearance_item_rel',
'contract_id')
净空:
class Clearance(models.Model):
_name = 'clearance.clearance'
contract = fields.Many2one('clearance.contract','Contract')
items = fields.One2many('clearance.clearance_item_rel',clearance_id')
清除项目相关:
class Clearance_item_rel(models.Model):
_name = 'clearance.clearance_item_rel'
contract_id = fields.Many2one('clearance.contract', 'Contract', ondelete='cascade')
clearance_id = fields.Many2one('clearance.clearance', 'Clearance', ondelete='cascade')
item_id = fields.Many2one('clearance.contract_item_rel', 'Item', ondelete='cascade')
previous_quantity = fields.Integer()
used_quantity = fields.Integer()
total_price = fields.Integer()
答复
您可以通过表单视图的字段定义上的上下文执行此操作示例代码:
<record id="clearance_view_form" model="ir.ui.view">
<field name="name">clearance.view.form</field>
<field name="model">clearance.clearance</field>
<field name="arch" type="xml">
<form>
<field name="contract"/>
<field name="items" context={'default_contract_id': contract}/>
</form>
</field>
</record>
清除
清除,清除
其中,default\u contract\u id
是clearance的字段名。clearance\u item\u rel
前缀为default\u
,contract
是要填充字段的值(在本例中,是clearance.clearance
model上的字段名)。请注意,default\u contract\u id
使用引号,而contract
不使用引号
提示
您可能需要考虑的其他技巧,因为我看到您的代码不遵循一些ODO命名约定:
- M2o字段名称的后缀应为
,如\u id
合同\u id
- O2m和M2m字段的后缀应为
,如\u id
或项目id
清除id