Группировка по функции / вычисляемому полю без ==> "store = True" в odoo 11 - PullRequest
0 голосов
/ 02 июля 2019

Я хочу сгруппировать по вычисляемому полю (type_client).

Я знаю, что должен сделать это store = True, но не могу, потому что значения являются динамическими. Есть ли другой вариант?

Это моя функция:

    def act_show_supect(self):
    for objctf in self:
        for client in self.env['res.partner'].search([('user_id.id', '=', self.user_id.id),
                                                      ('company_type', '=', 'company'),
                                                      ('type_client', '=', 'suspect')]):
            if client.type_client == 'suspect':
                objctf.ensure_one()
                res = objctf.env['ir.actions.act_window'].for_xml_id(
                    'base', 'action_partner_form')
                res.update(
                    context=dict(
                        objctf.env.context,
                        search_default_user_id_id=objctf.user_id.id,
                        search_default_type_client='suspect',
                    ),
                    domain=[('user_id.id', '=', objctf.user_id.id),
                            ('company_type', '=', 'company'),
                            ('type_client', '=', 'suspect')]
                )

                return res

И это ошибка после выполнения:

  File "E:\odoo11.0\odoo\models.py", line 1908, in read_group
    result = self._read_group_raw(domain, fields, groupby, offset=offset, 
    limit=limit, orderby=orderby, lazy=lazy)

  File "E:\odoo11.0\odoo\models.py", line 1946, in _read_group_raw
    assert gb_field.store and gb_field.column_type, "Fields in 'groupby' 
    must be regular database-persisted fields (no function or related 
    fields), or function fields with store=True"

  AssertionError: Fields in 'groupby' must be regular database-persisted 
    fields (no function or related fields), or function fields with 
    store=True

И я хочу сгруппировать по:

('type_client', '=', 'suspect')

1 Ответ

2 голосов
/ 02 июля 2019

ОК, давайте сделаем небольшой обходной путь:

Вы должны добавить @api.depends (поля, от которых зависит ваша работа), и этот метод будет запускаться каждый раз, когда вы изменяете значение зависимых полей.

...