Как вставить значение списка в словарь для метода default_get Odoo11 - PullRequest
0 голосов
/ 26 октября 2018

Я использую метод default_get для полей one2many, и я вижу поля в списке, но когда я хочу передать эти поля в словаре с помощью метода super в show blank dictionary.Итак, как это получить?

Мой код Python здесь:

@api.model
def default_get(self, fields):
    print("FIELDS", fields)
    rec = super(CrmContactLine, self).default_get(fields)
    print("REC", rec)
    context = dict(self._context or {})
    partner = self.env['res.partner'].browse(context['partner_id'])
    fields['partner_m2m'] = partner.child_ids
    return rec

ПОЛУЧИЛ РЕЗУЛЬТАТ НА ТЕРМИНАЛЕ 'ПОЛЯ' ПОКАЗАТЬ ЗНАЧЕНИЯ СПИСКАНО 'REC' DICTIONARY NULL

FIELDS ['имя', 'электронная почта', 'обозначение', 'connectedln_profile', 'идентификатор>,' Approached_status ',' подхода_дата ',' email_status',' follow_up_date ',' partner_m2m ']

REC {}

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

У меня есть решение этой проблемы.

@api.model
def default_get(self, fields):
    rec = super(CrmContactLine, self).default_get(fields)
    context = dict(self._context or {})
    partner = self.env['res.partner'].browse(context['partner_id'])
    rec['partner_m2m'] = [(6, 0, partner.child_ids.ids)]  # if your field type is many2many
    return rec
0 голосов
/ 26 октября 2018

Если супер-вызов метода default_get возвращает пустой запрос, то это потому, что для этой модели не будет задано никаких значений по умолчанию, и это верный результат.Вам нужно поместить свои собственные значения, прежде чем возвращать результат dict rec в вашем случае, а не в списке полей.Это должно работать для вас

@api.model
def default_get(self, fields):
    rec = super(CrmContactLine, self).default_get(fields)
    context = dict(self._context or {})
    partner = self.env['res.partner'].browse(context['partner_id'])
    rec['partner_m2m'] = partner.child_ids
    return rec
...