我想更新计算的字段记录,但是当我使用write方法时,它会在所有字段中写入自记录。
产品,模板中的名称字段未存储。现在由于我们的业务需求,所以我无法搜索它。
我创建另一个存储字段以将名称记录移入其中。所以我可以寻找而不是名字。
我单击按钮以从名称字段更新该字段中的数据。但是当我按下按钮时,它会更新为自己的名字,而不是每个产品的名字。
class autopart(models.Model):
_inherit = 'product.template'
@api.multi
def button_name(self):
for rec in self:
name=self.name
rec.search([]).write({'nameseacrh': self.name})
name = fields.Char(string="Name", required=False ,compute=compute_amount ,search=pro_search)
nameseacrh = fields.Char(string="", required=False,store=True, compute=compute_search )
按钮XML
<button name="button_name" type="object" string="name" class="oe_highlight" groups="base.group_system"/>
答案 0 :(得分:0)
我不完全了解您要做什么,但是这里已经有几句话:
@api.multi
def button_name(self):
for rec in self:
name=self.name # remark 1
rec.search([]).write({'nameseacrh': self.name}) # remark 2 and 3
1)您永远不要使用此变量
2)rec.search([])
与self.env['product.template'].search([])
相同:它需要数据库中的所有产品模板。您可能不想这样做...然后将您的值写在所有记录上。
3)您使用self.name
而不是rec.name
。仅当self
是一个元素的记录集时,第一个才会起作用,而在@api.multi
4)我不明白为什么您需要创建一个新字段来执行以前的操作。您不必这样做。