#python #xml #odoo
#python #xml #odoo
Вопрос:
У меня немного странная проблема, я хочу скрыть кнопку «создать счет» по сравнению с задачами, поэтому я попробовал код в аддонах «sale_timesheet»:
Для этого (это не работает) при добавлении tasks_count
:
<button name="%(sale.action_view_sale_advance_payment_inv)d" string="Create Invoice"
type="action" context="{'default_advance_payment_method': 'percentage'}"
attrs="{'invisible': ['|','|',('tasks_count', '>', 0),('invoice_status', '!=', 'no'), ('state', '!=', 'sale')]}"/>
И для этого (это работает) при добавлении invoice_count
:
<button name="%(sale.action_view_sale_advance_payment_inv)d" string="Create Invoice"
type="action" context="{'default_advance_payment_method': 'percentage'}"
attrs="{'invisible': ['|','|',('invoice_count', '>', 0),('invoice_status', '!=', 'no'), ('state', '!=', 'sale')]}"/>
И сказать вам, что поля tasks_count
и invoice_count
находятся в одной и той же модели, в одном и том же представлении
В чем проблема! почему ошибка показывает мне, что :
Поле ‘tasks_count’, используемое в атрибутах, должно присутствовать в представлении, но отсутствует
Ответ №1:
Вы должны поместить поле tasks_count в представление XML, где вам нужно создать кнопку. И необходимо поместить это поле перед кнопкой. Например, следующее:
<field name="tasks_count"/>
И если вы не хотите отображать это значение поля, вы можете сделать его невидимым, например, следующим:
<field name="tasks_count" invisible="1"/>
Надеюсь, это вам поможет. Спасибо.
Ответ №2:
действительно, вы можете использовать только те поля, которые присутствуют в представлении. Поля загружаются из базы данных только в том случае, если представление запрашивает его загрузку 😉