Доброе утро всем, я хотел бы унаследовать некоторые представления от представлений ODOO. так что я могу использовать его мой собственный модуль. может ли кто-нибудь объяснить мне, каковы возможные пути к этому?
Заранее спасибо.!
Доброе утро всем, я хотел бы унаследовать некоторые представления от представлений ODOO. так что я могу использовать его мой собственный модуль. может ли кто-нибудь объяснить мне, каковы возможные пути к этому?
Заранее спасибо.!
Просмотреть наследование
Вместо того, чтобы изменять существующие представления на месте (путем их перезаписи), Odoo обеспечивает наследование представлений, при котором дочерние «расширенные» представления применяются поверх корневых представлений и могут добавлять или удалять контент из своих родителей.
Представление расширения ссылается на своего родителя с помощью поля inherit_id, и вместо одного представления его поле свода состоит из любого количества элементов xpath, выбирающих и изменяющих содержимое своего родительского представления:
<!-- improved idea categories list -->
<record id="idea_category_list2" model="ir.ui.view">
<field name="name">id.category.list2</field>
<field name="model">idea.category</field>
<field name="inherit_id" ref="id_category_list"/>
<field name="arch" type="xml">
<!-- find field description and add the field
idea_ids after it -->
<xpath expr="//field[@name='description']" position="after">
<field name="idea_ids" string="Number of ideas"/>
</xpath>
</field>
</record>
expr Выражение XPath, выбирающее один элемент в родительском представлении. Выдает ошибку, если не соответствует ни одному элементу или более чем одной позиции
Operation to apply to the matched element:
inside
appends xpath's body at the end of the matched element
replace
replaces the matched element by the xpath's body
before
inserts the xpath's body as a sibling before the matched element
after
inserts the xpaths's body as a sibling after the matched element
attributes
alters the attributes of the matched element using special attribute elements in the xpath's body
Совет
При сопоставлении одного элемента атрибут position может быть установлен непосредственно для искомого элемента. Оба наследования ниже дадут один и тот же результат.
<xpath expr="//field[@name='description']" position="after">
<field name="idea_ids" />
</xpath>
<field name="description" position="after">
<field name="idea_ids" />
</field>
Надеюсь, это поможет.
Вот как я наследую и использую существующее представление в моем новом модуле. Я хотел унаследовать вид покупки, поэтому в своем модуле я наследую объект Purchase.order
class purchase_order(osv.osv):
_inherit="purchase.order"
//вы можете добавить сюда любые поля, как обычно
и я наследую вид, подобный этому ниже
<record id="purchase_order_advance_invoice_inherit_form" model="ir.ui.view">
<field name="name">purchase.order.advance.invoice.inherit.form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" **ref="purchase.purchase_order_form"**/>
//здесь я ссылаюсь на представление, которое я собираюсь унаследовать, вы можете закончить остальную часть тега