Надеюсь, ты сегодня в порядке, где бы ты ни был:)
У меня есть одна функция, которая позволяет извлекать определенные поля из других моделей, которая использует self.env[].search. Я также успешно переписал list of result, но я наткнулся на путаницу, когда я хотел бы updateзаписать эту запись в другие поля, используя record.write().
@api.multi
def _my_button(self):
for record in self.env['created.model'].search([]):
record_a = record.mapped('certain_fields') # saving result from certain_fields inside record_a variable
record_b = self.number # A number defined by user in current Odoo <form>
my_new_list = [number * record_b for number in record_a] # rewriting record_a values
record.write({'destination_field': my_new_list}) #trying to put my_new_list to other fields
Это практически работает, когда я перехожу my_new_listна целое число для целей тестирования, но я не мог заставить его работать, потому что словарь, похоже, не принимает my_new_list.
Есть ли способ или альтернатива писать my_new_listвнутри record.write()?
Решение проблемы
Значение destination_fieldполя должно быть списком триплетов
Например:
(0, 0, значения) добавляет новую запись, созданную из предоставленного valueсловаря.
Попробуйте следующее:
my_new_list = [(0, 0, {'final_qty': number * record_b}) for number in record_a]
record.write({'product_lines': my_new_list})
field_nameэто поле внутри поля One2Many, используемое для хранения number * record_bзначения
Комментариев нет:
Отправить комментарий