Показывать вид дерева внутри вида формы с одним общим полем между моделями. В Оду 9 - PullRequest
1 голос
/ 11 октября 2019

У нас есть модель " 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 [name] KeyError: 'support_ticket_ids'

Как мне этого добиться?

1 Ответ

1 голос
/ 11 октября 2019

Вы получили эту ошибку, потому что ожидаете, что поле 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',
    )
...