Строю модуль 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 Мне очень жаль, что я пропал. Спасибо за ваше уведомление. Я отредактировал свой вопрос.
Не надо извиняться. Мой комментарий был просто дружеским намеком. Спасибо за редактирование вашего вопроса!
Основная проблема заключается в том, что 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')})] "/>
В будущем, пожалуйста, включите весь соответствующий код в свое сообщение, а не просто включите ссылку на сайт хостинга кода. Ваш пост должен стоять отдельно от любого другого ресурса; подумайте, что произойдет, если этот сайт выйдет из строя в будущем!