odoo - 如何在按钮单击时将字段添加到具有默认值的树视图?
问题描述
我添加了一个打开新向导的按钮,最后一个只包含一个字段是 number ,这是我想在我的树笔记本树视图上使用默认值创建的字段数
例如,如果我输入 20 ,那么当我提交时,我应该在树视图中获得 20 个条目
解决方案
我假设这是一个 one2many 字段。One2many 字段通过在定义 many2one 字段时指定的字段中指定记录 ID 号链接到您的模型。
例如:
child_ids = fields.One2many('child.model.name', 'parent_id', 'Child Records')
因此,当您使用 one2many 字段创建新行时,会创建模型“child.model.name”的新记录,并且 parent_id 字段设置为当前记录的 id。
因此,要在表单中创建许多空行,您所要做的就是创建将“parent_id”字段设置为原始记录 ID 的记录。
首先,您需要将原始记录的 id 传递给向导,您将在按钮定义中执行此操作:
<button name="%(wizard_action)d"
string="Wizard Button"
type="action"
context="{'default_source_record_id': active_id}" />
您将需要一个名为“source_record_id”的字段在您的向导中,这将是一个与您调用它的模型相同的 many2one 字段,您将需要在您的向导视图中拥有该字段,但您可以使其不可见,如果你要。
在您从向导调用的代码中,您将创建一个循环来调用“child.model.name”模型上的 create 方法来创建该数量的空记录。它看起来像这样:
iterations = self.nombre
for i in range(iterations):
self.env['child.model.name'].create({
'parent_id': self.source_record_id.id
})
这将创建空记录,它们将显示在您的 one2many 字段中。
推荐阅读
- javascript - 如何使用 JavaScript 类增加和减少对象中的值?
- python - WiFi密码代码在执行时一直出错,说: FileNotFoundError: [Errno 2] No such file or directory: 'netsh'
- javascript - 删除单个空格之间出现的所有特定文本
- php - Laravel Auth::attempt 写入凭据后,将我重定向到登录
- unity3d - 试图从不同的图层渲染粒子以在我的 UI 上显示它
- parquet - 如何从镶木地板文件中仅读取某些列
- r - R:如何在多个变量分组时比较单个变量的值
- python - Scrapy 选择数据绑定
- docker - Kubernetes - 将 docker-compose yaml “command” 段“转换”为 k8s 命令和参数
- elixir - 匿名函数的可见性和生命周期