在表单视图中显示树视图,模型之间有一个公共字段。在 Odoo 9

Show tree view inside a form view with one field in common between models. In Odoo 9

我们有模型“website.support.ticket”,带有“partner_id”字段。 我们有模型“crm.lead”,带有“partner_id”字段。 (两个模型共一个字段)

想法是将一个页面(下拉)放到 crm_lead 的视图中,以查看所有 website_support_tickets 的列表crm_lead 当前视图的 合作伙伴 相关。

在 xml 文件中我们有这段代码,工作正常:

<record id="view_order_form" model="ir.ui.view">
    <field name="name">Opportunities Extend</field>
    <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
    <field name="arch" type="xml">
      <page name="lead" position="after">
        <page string="Support Tickets">
          <field name="support_ticket_lines"/>
        </page>
      </page>
    </field>  
</record>

在 python 文件中,我尝试将模型与相关字段联系起来:

class crm_lead_extend(models.Model):
    _inherit = ['crm.lead']

    support_ticket_lines = fields.One2many(related='partner_id.support_ticket_ids')

但是显示错误:

在_setup_related_full 字段 = target._fields[名称] 键错误:'support_ticket_ids'

我怎样才能做到这一点?

你得到那个错误是因为你期望字段 support_ticket_ids 存在于 res.partner 模型中,但是你没有在那里声明它。

保留您的代码,并将以下内容添加到 res.partner 模型中:

class ResPartner(models.Model):
    _inherit = 'res.partner'

    support_ticket_ids = fields.One2many(
        comodel_name='website.support.ticket',
        inverse_name='partner_id',
        string='Support Ticket Lines',
    )