Я хочу обновить записи вычисляемых полей, но при записи по методу записи во всех полях записывается собственная запись.
поле имени в продукте, шаблон не сохраняется. теперь из-за потребностей нашего бизнеса, поэтому я не могу искать его.
Я делаю еще одно сохраненное поле для перемещения записей имен в него. поэтому я могу искать вместо имени.
Я делаю кнопку для обновления данных в этом поле из поля имени. но когда я нажимаю на кнопку, она обновляется с собственным именем, а не именем каждого продукта.
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"/>
Я не совсем понимаю, что вы пытаетесь сделать, но вот несколько замечаний:
@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) Я не понимаю, почему вам нужно создать новое поле, которое будет делать то, что вы делали раньше. Тебе не нужно это делать.