GOOGLE ADS

четверг, 14 апреля 2022 г.

Odoo record.write() в One2Many

Надеюсь, ты сегодня в порядке, где бы ты ни был:)

У меня есть одна функция, которая позволяет извлекать определенные поля из других моделей, которая использует 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значения

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...