我正在构建模块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"/>
。我该如何解决这个问题?
答案 0 :(得分:0)
主要问题是view_id
是一个Many2one字段,这意味着您只能在ref
参数中指定一个视图。您应该为主要视图(首先显示)指定参考。在您的情况下,view_mode
指定tree
视图为主视图。
<field name="view_id" ref="client_form_view_2_tree"/>
最佳做法是通过"module_name.view_name"
来识别ref,尽管从技术上讲,上面没有任何问题。
您的context
似乎已正确设置以处理显示正确的表单视图。因此,我认为更新view_id
后,您的代码应该很好。
如果仍然无效,那么您可能需要使用views
参数来执行操作。有关详细信息,请参阅Actions Documentation,但想法是:
<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>
(view_id,view_type)对的列表。每对的第二个元素 是视图的类别(树,形式,图形,......),第一个是 可选的数据库ID(或False)。如果没有提供id,则客户端 应获取所请求的指定类型的默认视图 model(由fields_view_get()自动完成)。首先 列表的类型是默认视图类型,默认情况下将打开 执行动作时每种视图类型最多都应该出现 一次在列表中