【问题标题】:How to inherit One2many field in Odoo 12?如何继承 Odoo 12 中的 One2many 字段?
【发布时间】:2020-12-14 00:16:31
【问题描述】:

我创建了一个模块“school”,其中有一个 One2many 字段“remarks_lines_ids”,现在我希望这个“remarks_lines_ids”字段在“sale”模块(插件)中继承。

顺便说一下,我试过这个。 #学校模块........student.py

class StudentStudent(models.Model):
    _name = 'student.student'

    name = fields.Char(string='Name', required=True)

class RemarksLine(models.Model):
    _name = 'remarks.line'

    remarks = fields.Char(string='Remarks')
    student_id = fields.Many2one('student.student', string='Student')

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

    remarks_lines_ids = fields.One2many('remarks.line', 'student_id',
                                        string='Remarks Lines')


<!-- student_view.xml -->
<record id="sale_order_lines_inherit" model="ir.ui.view">
    <field name="name">sale.order.lines.inherit</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">
        <xpath expr="/form/sheet/notebook/page[@name='order_lines']" position="inside">
            <notebook>
                <page string="Remarks Line">
                    <field name="remarks_lines_ids">
                        <tree string="Remarks Line">
                            <field name="remarks"/>
                        </tree>

                        <form string="Remarks Line">
                            <group>
                                <field name="remarks"/>
                            </group>
                        </form>
                    </field>
                </page>
            </notebook>
        </xpath>
    </field>
</record>

【问题讨论】:

  • 您是否在清单文件中添加了“销售”模块和 student_view.xml ?
  • 是的,先生,我已经添加了。我还在 sale 模块中继承了 char 和 integer 字段。
  • 您需要在 'remarks.line 中添加 many2one 字段。模型为'sale.order.line'
  • 谢谢,我试试看。

标签: python xml inheritance odoo one2many


【解决方案1】:

One2many 关系需要关系模型中的 Many2one 字段..

试试这个

class RemarksLine(models.Model):
    _name = 'remarks.line'

    remarks = fields.Char(string='Remarks')
    student_id = fields.Many2one('student.student', string='Student')
    sale_order_line_id = fields.Many2one('sale.order.line')

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

    remarks_lines_ids = fields.One2many('remarks.line', 'sale_order_line_id',
                                        string='Remarks Lines')

【讨论】:

  • 您的代码不正确,但我敢打赌您的意思是正确的。 One2many 字段定义错误,第一个参数必须是其他型号名称,这里是remarks.line,第二个参数应该是sale_order_line_id
  • 好......是的,我忘了把正确的模型放在 One2many 关系“remarks.line”中。我纠正答案是正确的答案..谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多