odoo Many2one字段给Many2many字段传递值的方法
时间: 2024-02-23 22:01:00 浏览: 91
在Odoo中,可以通过Many2one字段给Many2many字段传递值。这可以通过使用Odoo的特殊语法和API来实现。
具体方法如下:
1. 在Many2one字段对应的模型中,添加一个Many2many字段,用于存储传递的值。例如,我们在模型A中添加一个Many2many字段,用于存储传递给模型B的值。
```python
class ModelA(models.Model):
_name = 'model.a'
name = fields.Char(string='Name')
value_ids = fields.Many2many(comodel_name='model.b', string='Values')
```
2. 在Many2one字段对应的模板中,添加一个Many2many字段的下拉菜单,用于选择传递的值。这可以通过使用Odoo的特殊语法和API来实现。例如,我们在模板中添加一个下拉菜单,用于选择传递给模型B的值。
```xml
<field name="value_ids" widget="many2many_tags"/>
```
3. 在Many2one字段对应的模型中,添加一个按钮,用于触发传递操作。按钮的onClick方法中,通过API获取Many2many字段的值,并将其传递给Many2one字段对应的记录中。例如,我们在模型A中添加一个按钮,用于触发传递操作。
```python
@api.multi
def transfer_values(self):
for record in self:
values = record.value_ids.ids
record.other_model_id.write({'many2many_field': [(6, 0, values)]})
```
在上述代码中,我们通过API获取Many2many字段的值,并将其传递给Many2one字段对应的记录中。
通过上述方法,我们可以实现Many2one字段给Many2many字段传递值的操作。
阅读全文