2014-12-22 1 views
1

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

  <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.") 

Я не вижу, почему поле может» t найти и искали некоторое время:/

+1

Можете ли вы дать нам больше информации, например, полное определение XML-представления, _имя объекта и ошибки, возникшей на сервере? –

+0

Добавили ли вы файл __init__.py и обновили модуль после перезапуска службы openerp? – dccdany

+0

Возможно, в вашей модели есть опечатка или ошибка. Odoo не загрузит вашу модель, если есть ошибка, но не приведет к ошибке ... Btw, вы должны использовать новую api (models.Model) и новый способ объявить свои поля – dturcotte

ответ

1

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

2

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

0

если вы используете полностью odoo 8,0, чем после этого вопроса, чем вы удалите запятую (,) после того, как поле

например: имя = name.Char ('Name')

after you can not enter (comma)(,)