我要为包含某些具有每个项目 3个属性的项目的合同创建许可 我有4种型号:
合同
清除
在许可模型的自定义视图中,我选择一个合同
来自Many2one
关系字段
然后尝试在其中创建Clearance_item_rel
记录
Clearance_item_rel
模型。
当我单击以创建Clearance_item_rel
记录时,它会打开
新窗口中的自定义视图
我想在第一个视图中使用选定的合同ID来自动填充contract_id
中的Clearance_item_rel
字段,因为用户刚在第一个视图中选择了该合同
P.S:
clearance_id
是在我创建Clearance_item_rel
从清除自定义视图中记录,但是contract_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')
Clearance_item_rel:
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()
答案 0 :(得分:2)
您可以通过表单视图的字段定义上的上下文来执行此操作。 示例代码:
<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_contract_id
是clearance.clearance_item_rel
的字段名,以default_
为前缀,而contract
是您要用该字段填充的值(在这种情况下,字段名在clearance.clearance
模型上)。请注意,default_contract_id
使用引号,而contract
则不使用引号。
您可能需要考虑其他一些技巧,因为我看到您的代码未遵循某些Odoo命名约定:
_id
后缀contract_id
_ids
或item_ids
中的clearance_ids