Поле Odoo не найдено

Я использую Odoo 8, и по какой-то причине поле, которое действительно существует, не найдено. В моем XML-файле следующий код

            <field name="amount_tax" position="after">
                <field name="delivery_cost"
                    options="{'currency_field': 'currency_id'}"
                    readonly="1" widget="monetary"/>
            </field>

Выдает ошибку, что "delivery_cost" не найден, хотя в sale.py он есть

  _columns = {
    'xx_delivery_date': fields.date(string='Delivery date'),
    'xx_payment_method': fields.many2one('xx.payment.method',
                                         string='Payment method'),
    'xx_warranty_period': fields.many2one('xx.warranty.period',
                                          string='Warranty period'),
    'xx_delivery_method': fields.many2one('xx.delivery.method',
                                          string='Delivery method'),
    'delivery_cost': fields.function(_amount_all_wrapper, digits_compute=dp.get_precision('Account'), string='Delivery cost',
        store={
            'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line', 'xx_delivery_method'], 10),
        },
        multi='sums', help="The delivery cost.", track_visibility='always'),
    'amount_untaxed': fields.function(_amount_all_wrapper, digits_compute=dp.get_precision('Account'), string='Untaxed Amount',
        store={
            'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
            'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
        },
        multi='sums', help="The amount without tax.", track_visibility='always'),
    'amount_tax': fields.function(_amount_all_wrapper, digits_compute=dp.get_precision('Account'), string='Taxes',
        store={
            'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10),
            'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
        },
        multi='sums', help="The tax amount."),
    'amount_total': fields.function(_amount_all_wrapper, digits_compute=dp.get_precision('Account'), string='Total',
        store={
            'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line', 'xx_delivery_method'], 10),
            'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10),
        },
        multi='sums', help="The total amount.")

Я не понимаю, почему поле не может быть найдено, и довольно долго искал: /


person 011899988199    schedule 22.12.2014    source источник
comment
Не могли бы вы предоставить нам дополнительную информацию, например, полное XML-определение представления, _name объекта и ошибку, вызванную сервером?   -  person Quentin THEURET    schedule 22.12.2014
comment
Вы добавили py в файл init .py и обновили модуль после перезапуска службы openerp?   -  person dccdany    schedule 22.12.2014
comment
Возможно, в вашей модели есть опечатка или ошибка. Odoo не загрузит вашу модель, если есть ошибка, но и не вызовет ошибку ... Кстати, вы должны использовать новый api (models.Model) и новый способ объявления ваших полей   -  person dturcotte    schedule 22.12.2014


Ответы (3)


Перефакторите кодовый блок функционального поля. Не помещайте его в блок столбцов. создайте отдельную функцию для функционального поля, это может решить вашу проблему

person SanathT    schedule 21.05.2015

Убедитесь, что вы перезапустили сервер, а затем обновили модуль после внесения изменений в модель / представление.

person amr.negm    schedule 21.02.2015

если вы полностью используете odoo 8.0, чем после этой проблемы, вы удалите запятую (,) после поля

пример: name = name.Char ('Имя')

after you can not enter (comma)(,)
person gopal    schedule 21.07.2016