#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, а затем обновите свой модуль