gpt4 book ai didi

python - 重复记录缺少 many2one 字段问题

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:50 25 4
gpt4 key购买 nike

我的产品带有来自自定义模块的额外字段。我正在尝试重写复制函数,否则当我尝试复制产品时,某些值不会重复。

所以,在这个复制函数中,我设法添加了这些字段,但如果我尝试只添加原始产品字段中的 ID,那么在复制产品后,该字段会丢失值。我想这是有道理的。

代码:

class ProductTemplate(models.Model):
_inherit= 'product.template'

@api.multi
def copy(self, default=None):
default = dict(default or {})
array_attribute_line_ids = []
for value_id in self.attribute_line_ids.read([]):
array_attribute_line_ids += [(4,value_id['id'])]
print (array_attribute_line_ids)
default.update({
# General Information
# 'standard_price': self.standard_price,

# Variants > Attributes
'attribute_line_ids': array_attribute_line_ids,
# Purchase > Vendors

# Inventory
'weight': self.weight,
'volume': self.volume,

# Invoicing
'property_account_income_id': self.property_account_income_id,
'supplier_taxes_id': self.supplier_taxes_id, #NOT WORKING
'property_account_expense_id': self.property_account_expense_id,
'property_account_creditor_price_difference': self.property_account_creditor_price_difference,
})
return super(ProductTemplate, self).copy(default)

查看:手边的字段是图像底部显示的 attribute_line_ids。

enter image description here

问题:我可以根据原始记录创建新记录,但问题是这些值之一取决于需要值“product_tmpl_id”的 many2one,它是产品的 ID。那么,如果我还没有新产品的 ID,我该如何创建这些值,因为它目前还没有被复制。

之前我在另一个功能中创建了记录,然后使用它的 ID 更新了这些值。现在不可能了。

有办法解决吗?是否有 .copy() 函数允许我复制所有这些记录而无需手动创建?

谢谢你。

这是 odoo 11 企业版。

最佳答案

IIUC 您希望在复制产品时复制产品属性。我相信您可以通过将 product.template 属性 copy 上的字段 attribute_line_ids 更改为 True 来实现:

from odoo import fields, models


class ProductTemplate(models.Model):
_inherit = 'product.template'

attribute_line_ids = fields.One2many(copy=True)

关于python - 重复记录缺少 many2one 字段问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com