odoo 如何設定欄位變更跟蹤
阿新 • • 發佈:2021-07-05
且看原始碼:
@api.model def _get_tracked_fields(self, updated_fields): """ Return a structure of tracked fields for the current model. :param list updated_fields: modified field names :return dict: a dict mapping field name to description, containing on_change fields """ tracked_fields = [] for name, field in self._fields.items(): if getattr(field, 'track_visibility', False): tracked_fields.append(name) if tracked_fields: return self.fields_get(tracked_fields) return {}
設定的關鍵字為track_visibility
原始碼設定例項:
type = fields.Selection([ ('out_invoice','Customer Invoice'), ('in_invoice','Vendor Bill'), ('out_refund','Customer Credit Note'), ('in_refund','Vendor Credit Note'), ], readonly=True, states={'draft': [('readonly', False)]}, index=True, change_default=True, default=lambda self: self._context.get('type', 'out_invoice'), track_visibility='always')