В последнее время у меня часто возникает потербность скрывать поля из списка фильтров и группировок Odoo. Для того чтобы каждый раз не искать как это сделать, решил написать эту заметку возможно кому-то тоже будет полезно.
Итак, чтобы скрыть поля из фильтров или группировки необходимо расширить метод fields_get
у нашей модели:
from odoo import models, fields, api
class OutModel(models.Model)
name = fields.Char("Name")
@api.model
def fields_get(self, allfields=None, attributes=None):
res = super(OutModel, self).fields_get(allfields, attributes)
fields_to_hide = ['create_date', 'write_date']
for field in fields_to_hide:
res[field]['selectable'] = False # выключаем видимость поля в фильтрах
res[field]['sortable'] = False # выключаем видимость поля в группировке
return res
Соответственно в этом примере я скрыл служебные поля (дата создания и дата изменения) из фильтров и группировки. Если надо скрыть поле только в одном списке, я оставил в коде комментарии какой атрибут надо поменять у него:
selectable
выключает отображение поля в списке фильтровsortable
выключает отображение поля в списке группировок