Как установить несколько представлений одной модели в odoo 10?

#python #odoo

#python #odoo

Вопрос:

Я настраиваю несколько представлений (дерево, форму) модели.

У меня есть два представления дерева и формы, где мне нужно открыть представление Tree 2 в виде записи.

При нажатии на запись в дереве 2 затем откройте форму 2 в качестве страницы сведений. В настоящее время я установил последовательность просмотра дерева 1, работающую, но все еще открывающую форму 1 вместо Form2.

Как я могу это сделать?

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

1. Не могли бы вы добавить больше деталей? Добавление кода представлений, например

Ответ №1:

Если вы хотите указать используемые представления, вы можете добавить context атрибут и указать идентификатор представления для каждого поддерживаемого типа представления, точно так же, как view_id атрибут action:

 <field name="order_line" colspan="4" nolabel="1" context="{'form_view_ref' : 'module.view_id', 'tree_view_ref' : 'model.view_id'}"/>
  

Если вы не укажете представления, OpenERP выберет одно в таком порядке :

  • Он будет использовать представление <форма> или <дерево>, определенное внутри поля (см. Ниже)
  • В противном случае будут использоваться представления с наивысшим приоритетом для этого объекта.
  • Наконец, он сгенерирует пустые представления по умолчанию со всеми полями.

Обратите внимание, что
контекстные ключи имеют имена <view_type>_view_ref .

По умолчанию OpenERP никогда не будет использовать представление, которое не определено для вашего объекта. Если у вас есть две модели с одинаковыми полями, но разными названиями моделей, OpenERP никогда не будет использовать представление одной для другой, даже если одна модель наследует другую.
Вы можете принудительно выполнить это, указав представление вручную либо в действии, либо в контексте.

Ответ №2:

Из https://subscription .packtpub.com/book/business_and_other/9781789618921/10/ch10lvl1sec104/adding-a-menu-item-and-window-action

Вы можете использовать следующий код:

 <act_window id="action_books2"
      name="All books"
      res_model="library.books"
      view_mode="tree,form"
      domain="[--any domain--]"
      context="{'--any context--'}" />
  

И затем вы определяете действие для древовидного представления и другое для формы, view:

 <record id="action_books2_tree" model="ir.actions.act_window.view">
    <field name="act_window_id" ref="action_books2" />
    <field name="view_id" ref="view_all_books2_tree" />
    <field name="view_mode">tree</field>
    <field name="sequence" eval="2"/>
</record>

<record id="action_all_books2_form" model="ir.actions.act_window.view">
    <field name="act_window_id" ref="action_all_books2" />
    <field name="view_id" ref="view_books2_form" />
    <field name="view_mode">form</field>
    <field name="sequence" eval="2"/>
</record>