如何解决编写一个按钮来从表中复制数据Python3、Odoo 14
def formmst_copy_func(self):
_logger.info('=== formmst_copy_func start ===')
for record in self:
formbas_obj = self.env['hre.formmst']
defaults = {
'form_no': record.form_no,'hre_orgbas_id': record.hre_orgbas_id.id if record.hre_orgbas_id else False,'form_name': record.hre_formmst_id.form_name,'form_type': record.hre_formmst_id.form_type,'calculate_type': record.hre_formmst_id.calculate_type,'total_score': record.hre_formmst_id.total_score,'hre_formdtl_ids': record.hre_formmst_id.hre_formdtl_ids,}
formbas_obj.create(defaults)
_logger.info('=== formmst_copy_func end ===')
hre_formmst_id 是 Many2one 字段。 hre_formdtl_ids 是 One2many 字段。
<record id="form_hre_formbas_copy_wizard" model="ir.ui.view">
<field name="name">form.hre.formbas.copy.wizard</field>
<field name="model">hre.formbas.copy.wizard</field>
<field name="arch" type="xml">
<form>
<group col="4">
<field name="hre_formmst_id"/>
<newline/>
<field name="form_no"/>
<field name="hre_orgbas_id"/>
</group>
<footer>
<button string="copy" name="formmst_copy_func" type="object" class="oe_highlight"/>
or
<button string="Cancel" special="cancel" type="object" class="oe_link"/>
</footer>
</form>
</field>
</record>
该函数可以成功复制数据。
但是原始数据中的hre_formdtl_ids消失了。
如何修复该功能?请给我一些建议。谢谢!
解决方法
尝试将 one2many 字段更新为 [(6,ids)] 或 [(4,id)]
用于填充 many2many 和 one2many:
<canvas id="canvas"></canvas>
所以在你的情况下你可以尝试:
(0,{ values }) link to a new record that needs to be created with the given values dictionary
(1,ID,{ values }) update the linked record with id = ID (write *values* on it)
(2,ID) remove and delete the linked record with id = ID (calls unlink on ID,that will delete the object completely,and the link to it as well)
(3,ID) cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
(4,ID) link to existing record with id = ID (adds a relationship)
(5) unlink all (like using (3,ID) for all linked records)
(6,[IDs]) replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。