Почему Odoo не вставляет эти два столбца?

#openerp #odoo-8

#odoo #odoo-8

Вопрос:

Я создаю пользовательский модуль для расширения полей в sale.order.строка, но Odoo (v8) не создает эти два столбца.

 class sale_order_line_ext(osv.Model):
    _name = 'sale.order.line'
    _inherit = 'sale.order.line'

    _columns = {
        'supplier_name': fields.char('Supplier name'),
        'supplier_ref': fields.char('Product reference'),
    }

sale_order_line_ext()
  

Я уже создал несколько столбцов в sale.order ранее, но я не вижу здесь ничего плохого. В чем моя ошибка?

Комментарии:

1. Во-первых: я не знаю, почему в обоих ответах предлагается удалить атрибут _name, потому что в этом нет необходимости. И второе: почему вы не используете новый API? Я думаю, вы забыли инициализировать файл или просто не перезапустили сервер. Без обид, это просто обычная ошибка.

2. @CZoellner я предложил удалить _name , потому что его требованием не является добавление другой модели, он добавляет поля в ту же модель. Вот почему _name это не требуется.

3. Хорошо, это не обязательно, но это также не ошибка.

Ответ №1:

В вашем комментарии в журнале ошибок указано supplier_name , что он не существует в таблице sale.order.line' , чтобы проверить это, перейдите в настройки -> Технические -> Структура базы данных -> Модели и найдите sale.order.line , после чего вы увидите все поля. Если нет, попробуйте приведенный ниже код:

 class sale_order_line_ext(osv.Model):
    _inherit = 'sale.order.line'

    _columns = {
    'supplier_name': fields.char('Supplier name'),
    'supplier_ref': fields.char('Product reference'),
     }

sale_order_line_ext()
  

Ответ №2:

Вы добавили эти поля в модель sale.order.line , но не добавили их в представление. Если вы хотите отобразить эти поля в строке заказа на продажу, вам придется унаследовать tree view 'Sales Order Lines' и добавить эти поля в древовидное представление.

 <record id="pob_order_line_view_form" model="ir.ui.view">
    <field name="name">sale.order</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">  
        <xpath expr="//notebook/page[@string='Order Lines']/field[@name='order_line']/tree[@string='Sales Order Lines']/field[@name='name']" position="after">
            <field name= 'supplier_name'/>
            <field name= 'supplier_ref'/>
        </xpath>
    </field>        
</record>
  

Комментарии:

1. Спасибо за ваш ответ @VikashMishra . Я уже создал это представление, но я не помещал его сюда. Когда я пытаюсь добавить эти поля в представление, Odoo возвращает ошибку: Detalles de error: El campo supplier_name no existe Error de contexto: Vista sale.order.form.inherit [view_id: 832, xml_id: sale_extensions.view_order_form_extension, model: sale.order, parent_id: 650]" while parsing /home/marcogonzalo/Dentaltix/ERP/bitnami-odoo/apps/odoo/lib/odoo-8.0.post20151126-py2.7.egg/openerp/addons/sale_extensions/views/sale_form_views.xml:4, near

2. удалите _name=sale.order.line из своего .py файла и перезапустите сервер odoo, а затем обновите свой модуль