python - 如何从 Odoo 的另一个视图中的另一个字段自动填充自定义视图中的字段?
问题描述
我想为一些项目创建一个合同,每个项目都有3 个属性我有 4 个模型:
合同
清除
- 物品
- Clearance_item_rel
当我在清关模型的自定义视图中时,我从Many2one
关系字段中选择一个合同
然后尝试在模型中创建Clearance_item_rel
记录
。Clearance_item_rel
当我单击创建Clearance_item_rel
记录时,它会在新窗口中打开自定义视图
我想在第一个视图中使用选定的合同 ID 来自动填写该contract_id
字段,Clearance_item_rel
因为用户刚刚在第一个视图中选择了它
PS:在我从清关自定义视图
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()
解决方案
回答
您可以通过表单视图的字段定义上的上下文来执行此操作。示例代码:
<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 命名约定:
- M2o 字段名称应以
_id
as 为后缀contract_id
- O2m 和 M2m 字段应以
_ids
initem_ids
或clearance_ids
推荐阅读
- dart - 将一个 dart 文件中的列表返回到另一个 dart 文件
- flutter - 如何使用 SliverAppBar 在 Flutter 中垂直居中文本/标题?
- netsuite - Netsuite:SuiteCommerce 高级本地开发
- html - 为什么拦截方法在调用后不更新 ShowSpinner 变量
- python - nested list comprehension to achieve nested lists
- asp.net - IIS 中的 ASP.NET 模拟
- c++ - 下面的代码,是格式错误的 NDR 还是格式正确?
- ansible - Ansible 中用于端口转发的多个 ssh 命令
- python - 在 Windows 上在后台线程上接收 zmq 消息失败
- ios - How to stop navigation bar title from changing color when moving from controller to controller