Создайте другую форму и дерево в odoo 9

Строю модуль odoo. В моем модуле нужны две формы и дерево с разными полями из одного класса. Меня пробовали, но не работает. Это мой код

<record id = "open_view_client_form_view_2_list_my" model = "ir.actions.act_window">
        <field name = "name">Trial</field>
        <field name = "res_model">new.trial</field>
        <field name = "view_type">form</field>
        <field name = "view_mode">tree,form</field>
        <field name = "domain">[]</field>
        <field name = "view_id" ref = "client_form_view_2,client_form_view_2_tree"/>
        <field name = "context">{ 'form_view_ref' : 'client_form_view_2', 'tree_view_ref':'client_form_view_2_tree'}</field>    
        <field name = "search_view_id" ref = "client_form_view_2_filter"/>
        <field name = "help" type = "html">
          <p class = "oe_view_nocontent_create">
            Click to add a new project.
          </p>
        </field>
    </record>

и ошибки вроде этого <field name = "view_id" ref = "client_form_view_2,client_form_view_2_tree"/>. Как я могу это решить?

В будущем, пожалуйста, включите весь соответствующий код в свое сообщение, а не просто включите ссылку на сайт хостинга кода. Ваш пост должен стоять отдельно от любого другого ресурса; подумайте, что произойдет, если этот сайт выйдет из строя в будущем!

anothernode 02.05.2018 11:09

@anothernode Мне очень жаль, что я пропал. Спасибо за ваше уведомление. Я отредактировал свой вопрос.

Kenji Reita Moe 02.05.2018 11:30

Не надо извиняться. Мой комментарий был просто дружеским намеком. Спасибо за редактирование вашего вопроса!

anothernode 02.05.2018 11:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
307
1

Ответы 1

Основная проблема заключается в том, что view_id является полем Many2one, что означает, что вы можете указать только одно представление в аргументе ref. Вы должны указать ссылку для того, какое представление будет основным (отображаться первым). В вашем случае ваш view_mode указывает, что представление tree будет основным.

<field name = "view_id" ref = "client_form_view_2_tree"/>

It's also best practice to identify the ref by "module_name.view_name" although technically there is nothing wrong with the above.

Похоже, ваш context правильно настроен для отображения правильного вида формы. Итак, я думаю, что ваш код должен стать хорошим после обновления view_id.


Если это все еще не работает, вам может потребоваться использовать аргумент views для действия. См. Документация по действиям для более подробной информации, но идея такова:

<field name = "views">[(id, name), (id, name)]</field>
<!-- This is just an example. You may have to tweak this to work properly -->
<field name = "views">[('your_module.tree_view', 'tree'), ('your_module.form_view', 'form')]</field>

A list of (view_id, view_type) pairs. The second element of each pair is the category of the view (tree, form, graph, ...) and the first is an optional database id (or False). If no id is provided, the client should fetch the default view of the specified type for the requested model (this is automatically done by fields_view_get()). The first type of the list is the default view type and will be open by default when the action is executed. Each view type should be present at most once in the list

Я попробовал ваше предложение. Работает для другого дерева, но не работает для другой формы. Это мой новый код <field name = "view_ids" eval = "[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref ('client_form_view_2_tree')}) , (0, 0, {'view_mode': 'form', 'view_id': ref ('client_form_view_2')})] "/>

Kenji Reita Moe 03.05.2018 09:05

Другие вопросы по теме