Как получить значения полей по умолчанию, которые будут в форме заранее в Odoo?

У меня есть некоторые виды форм, похожие на account.voucher.receipt.dialog.form, которые находятся в файле: /addons_path/account_voucher/voucher_payment_receipt_view.xml.

  • Некоторые теги field получают значения по умолчанию, которые были определены в модели.

  • Некоторые теги field получают значения по умолчанию из методов on change (определяемых атрибутами on_change).

Я хочу обойти эти представления форм и автоматизировать процесс, поэтому мне нужно заранее знать эти значения полей по умолчанию. Таким образом, мне нужно только добавить дополнительные значения полей, если это необходимо, а затем вызвать метод create для модели.

Я использую Odoo v8.

Как я могу этого добиться?


person Hieu    schedule 31.08.2015    source источник


Ответы (1)


Если вы хотите распечатать в журнале все значения по умолчанию вашей модели, вы можете сделать это:

from inspect import isfunction

@api.multi
def get_default_fields(self):
    for key, value in self._fields.iteritems():
        if value.name not in models.MAGIC_COLUMNS:
            if self._defaults.get(value.name, False):
                if isfunction(self._defaults[value.name]):
                    _logger.debug(self._defaults[value.name](
                        self, self.env.cr, self.env.uid, None
                    ))
                else:
                    _logger.debug(self._defaults[value.name])

Я думаю, вы можете адаптировать этот код к вашим потребностям.

И если вы хотите получить значение одного поля, назначенного методом onchange, возможно, вам придется запустить метод вручную.

person ChesuCR    schedule 31.08.2015