Odoo - Расчет поля Импорт

Либо приемлемы для большинства ситуаций, и в большинстве случаев они взаимозаменяемы, но они являются тонко разными. Конечно, большая разница состоит в том, что один из них доступен из Activity, а другой - с View. Между ними много совпадений, но иногда в Activity у вас не будет доступа к View, а иногда в View у вас не будет доступа к Activity.

Один из краевых случаев, с которыми я столкнулся с View.post, я упомянул в ответ на другой вопрос SO на View.post : View.post работает только из другого потока когда View прикреплен к окну. Это редко бывает проблемой, но иногда может привести к тому, что Runnable никогда не будет выполняться, особенно если вы вызываете View.post в методе onCreate вашего Activity. Альтернативой является использование Handler.post , что Activity и View.post используются в любом случае.

(отредактировано для точности, добавлено «от другого нить ")

1
задан user2379186 27 February 2019 в 14:57
поделиться

1 ответ

Проблема в том, что @api.onchange() работает на уровне просмотра, например,

=> Edit a record in form view
=> You change value on a `@api.onchange()` field, `sq_cost` in this case
=> `@api.onchange` function is fired, some other field value is changed `standard_price` in this case
**But nothing is changed on the database yet, cause you are still on edit mode**
=> Changes are stored in database only if you press save button.

Но в случае импорта из CSV ничего не меняется на уровне просмотра, значения изменяются непосредственно в базе данных, поэтому ни одно из этот процесс выполняется.

Решение:

вместо использования функции onchange на уровне просмотра, вы можете использовать compute function в поле standard_price с @api.depends('sq_cost'). Это работает на уровне базы данных, поэтому значения будут рассчитываться всякий раз, когда вы импортируете значение sq_cost. Что нужно иметь в виду:

** compute field is by default not stored, set `store=True`
** compute field is by default readonly, set `inverse='inverse_function'` to make this field editable
0
ответ дан arryph 27 February 2019 в 14:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: