将一个模型的某些字段值插入另一个模型,并在odoo 10中的一个视图上显示所有字段

时间:2017-03-16 07:31:04

标签: openerp odoo-10

将一个模型的某些字段值插入另一个模型并在一个视图上显示所有字段。 例如!

我有一个学生模型,其中包含基本信息(名字,姓氏等),并希望将其保存到res_partner表中。这是因为我不想在学生注册表单视图中显示res_partner的额外字段。只需使用包含标签和其他字段的自定义表单视图。

2 个答案:

答案 0 :(得分:1)

您的问题并不是很清楚,但我想您希望轻松地将学生模型上的某些字段读/写成合作伙伴模型。

如果学生始终是合作伙伴,我建议您使用_inherits = {'res.partner': 'partner_id'}。检查docsuser/partner example。创建用户时,您也可以创建合作伙伴。用户模型/表将仅包含其字段。另一个例子是product.template + product.product。

如果您不需要此项并且您已经有与学生相关的合作伙伴,则可以添加一些相关字段,例如:

fullname = fields.Many2one(related='partner_id.name')

如果您没有将其设置为只读,那么您将在合作伙伴名称内写。

最后但并非最不重要的是,如果合作伙伴表单对您来说足够,只需在其中添加新标签,例如this

   <record id="partner_mytab_form" model="ir.ui.view">
        <field name="name">res.partner.mytab</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <xpath expr="//notebook[last()]" position="inside">
                <page string="My tab" name="mytab">
                    ...
                </page>
            </xpath>

答案 1 :(得分:0)

@ api.multi    def open_second_class(s​​elf):                AC = self.env [&#39; ir.model.data&#39]。xmlid_to_res_id(&#39; account.invoice_form&#39;,raise_if_not_found =真)             write_obj = ac.create({&#39; partner_id&#39;:self.name_id})             会计=假             为了自我:                 accountant = o.id             result = {                 &#39; name&#39;:&#39; 2nd class&#39;,                 &#39; view_type&#39;:&#39; form&#39;,                 &#39; res_model&#39;:&#39; account.invoice&#39;,                 &#39; res_id&#39;:write_obj.id,                 &#39; view_id&#39;:错,                 &#39; context&#39;:{&#39; default_id_tbl1&#39;:accountant},                 &#39;输入&#39;:&#39; ir.actions.act_window&#39;,                 &#39; view_mode&#39;:&#39; form&#39;,                 &#39;目标&#39;:&#39; new&#39;,                 &#39;域&#39;:&#39; []&#39;             }             返回结果