odoo - 如何在 Odoo 13 中使用 many2one 为字段创建记录?
问题描述
我有 3 个模型。我使用了 One2many 字段,将模型 3 的树视图放入模型 1 和 2 的表单视图中。
1/ bao_hiem.py 带有 one2many 字段:
lstd_baohiem = fields.One2many('lich.su', 'name') thamchieu = fields.Char('Tham chiếu')
2/ 带有 one2many 字段的 dieu_chinh.py:
lstd_dieuchinh = fields.One2many('lich.su', 'name') thamchieu = fields.Char('Tham chiếu')
和 3/ lich_su.py 与 many2one 字段:
name = fields.Many2one('bao.hiem') name_id = fields.Many2one('bao.hiem') thamchieu = fields.Char('Tham chiếu')
我想将 dieu_chinh.py 中的值(例如:'name'、'thamchieu')传递给 lich_su.py 并通过按钮自动记录所有这些值。这样,在模型 1 和模型 2 的用户表单视图中也可以显示记录的值,称为 1 个用户的活动历史记录。按钮的代码如下:
def chapthuan(self):
giatri_lstd = self.env['lich.su']
gt = {
'name' : self.name.id,
'thamchieu' : self.thamchieu,
'thoigian' : self.thoigian
}
list_lstd_dieuchinh=[]
for line in self.lstd_dieuchinh :
art = {}
art['name'] = line.name.id
art['lstd_dieuchinh'] = line.lstd_dieuchinh
art['thamchieu'] = line.thamchieu
art['thoigian'] = line.thoigian
list_lstd_dieuchinh.append((0, 0, art))
gt.update({ # add the list of command to gt
'thamchieu': list_lstd_dieuchinh
})
giatri_lstd = giatri_lstd.create(gt)
return True
单击“chapthuan”按钮后,它可以传递值并使用字段“name”,“date”创建记录。但是对于这个领域:'thamchieu' 与 model2 有很多关系的'thamchieu' 仍然没有工作。
我必须在用户的表单视图中手动选择。
那么如何创建带有 many2one 字段的记录呢?
请帮忙!
谢谢
解决方案
https://www.odoo.com/documentation/13.0/reference/orm.html#create-update
您正在尝试通过 x2many 字段的方式通过 (0, 0, {values}) 到 name_id 创建记录。
但是 name_id 是 Many2one 字段。那是你的编程错误。
但是当您尝试删除已经链接到另一条记录的记录时,您显示的错误日志发生了。所以我上面说的不是主要问题......无论如何,我对你的代码有点困惑,它看起来不太好
推荐阅读
- python - _tkinter.TclError:无效的命令名称“.!frame.!entry”
- python - 带有python客户端的Erlang回显服务器没有回显,python客户端没有正确接收响应
- reactjs - AWS Amplify in React,如何从订阅的侦听器呈现新数据
- javascript - Javascript 错误:“无法读取未定义的属性零”
- google-chrome-extension - 将 google 优化与 chrome 扩展集成时遇到不同的错误
- laravel-8 - 如何用 min 获取行数据
- reactjs - 如何在 React 中添加到父事件处理程序
- python - 挣扎于 While 循环
- java - 什么
应该为这些方法添加标签吗? - javascript - 如何使用javascript中的过滤器根据性别过滤掉对象数组?