我有一个模特。例如,让我们说:
class my_model(models.Model):
_name = 'my.model'
field1 = fields.Char('name')
它有树和表单视图。两者都运作正常。
现在我创建了新模型,复制旧模型:
class my_model_template(models.Model):
_name = 'my.model.template'
_inherit = 'my.model'
现在直到这一部分,一切都很好。它复制旧模型中的所有内容。但是谈到观点......
所以我为'my.model.template'视图(树和表单)做了这个:
<record id="view_my_model_template_tree" model="ir.ui.view">
<field name="name">my.model.template.tree</field>
<field name="model">my.model.template</field>
<field name="inherit_id" ref="my_model.view_my_model_tree"/>
<field name="arch" type="xml">
<tree string="My Model" position="attributes">
<attribute name="string">My Model Template</attribute>
</tree>
</field>
</record>
<record id="view_my_model_template_form" model="ir.ui.view">
<field name="name">my.model.template.form</field>
<field name="model">my.model.template</field>
<field name="inherit_id" ref="my_model.view_my_model_form"/>
<field name="arch" type="xml">
<form string="My Model" position="attributes">
<attribute name="string">My Model Template</attribute>
</form>
</field>
</record>
但它没有正确复制视图。例如,树视图仅显示名称字段,在原始视图中它有四个字段。在表单视图中,它似乎显示所有字段,但这些字段位于某个随机位置,没有任何格式(在旧视图中)。
答案 0 :(得分:1)
您需要指定要为哪种视图模式打开哪个视图。因为当您复制另一个模型的视图时,它似乎无法自动找到正确的视图(即使每个模式只定义了一个)
<record model="ir.actions.act_window.view" id="action_my_model_template_tree">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_my_model_template_tree"/>
<field name="act_window_id" ref="action_my_model_template"/>
</record>
<record model="ir.actions.act_window.view" id="action_my_model_template_form">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_my_model_template_form"/>
<field name="act_window_id" ref="action_my_model_template"/>
</record>
注意强> 此外,如果您将在其他模型视图中的任何位置使用此类型号,并且您尝试直接从该其他视图打开它的形式,它也将打开&#34;未格式化的&#34;视图。要绕过这一点,您需要指定要打开的视图:
例如:
<record id="view_my_other_model_form" model="ir.ui.view">
<field name="name">my.other.model.form</field>
<field name="model">my.other.model.</field>
<field name="arch" type="xml">
<form string="My Other Model">
<field name="my_model_template_id"
context="{'form_view_ref': 'my_model_template.view_my_model_template_form'}"/>
</form>
</field>
</record>