diff --git a/auditlog/models/rule.py b/auditlog/models/rule.py index 4a67b78cd..67acb7a81 100644 --- a/auditlog/models/rule.py +++ b/auditlog/models/rule.py @@ -358,6 +358,7 @@ class auditlog_rule(models.Model): if field_name in FIELDS_BLACKLIST: continue field = self._get_field(log.model_id, field_name) + # not all fields have an ir.models.field entry (ie. related fields) if field: log_vals = self._prepare_log_line_vals_on_read( log, field, read_values) @@ -389,9 +390,11 @@ class auditlog_rule(models.Model): if field_name in FIELDS_BLACKLIST: continue field = self._get_field(log.model_id, field_name) - log_vals = self._prepare_log_line_vals_on_write( - log, field, old_values, new_values) - log_line_model.create(log_vals) + # not all fields have an ir.models.field entry (ie. related fields) + if field: + log_vals = self._prepare_log_line_vals_on_write( + log, field, old_values, new_values) + log_line_model.create(log_vals) def _prepare_log_line_vals_on_write( self, log, field, old_values, new_values): @@ -434,9 +437,11 @@ class auditlog_rule(models.Model): if field_name in FIELDS_BLACKLIST: continue field = self._get_field(log.model_id, field_name) - log_vals = self._prepare_log_line_vals_on_create( - log, field, new_values) - log_line_model.create(log_vals) + # not all fields have an ir.models.field entry (ie. related fields) + if field: + log_vals = self._prepare_log_line_vals_on_create( + log, field, new_values) + log_line_model.create(log_vals) def _prepare_log_line_vals_on_create(self, log, field, new_values): """Prepare the dictionary of values used to create a log line on a