I need to serialize data coming from Django Audit Log Entry in such a way that when in changes field There is a Field present which has a value of foreign key I need to fetch the value of that Foreign key from database and Change the Foreign key with the value.
def get_changes(self, obj):
changes_data = obj.changes
if changes_data:
model_name = obj.content_type.model_class().name
try:
field_mapping = getattr(ma_activity_tracker, f”{model_name}_display_atrb”)
except AttributeError:
field_mapping = {}
changes = {}
for field, (old_value, new_value) in changes_data.items():
field_name = field_mapping.get(field, field)
field_object = globals().get(model_name)
print(field_object.User)
# if isinstance(field_object, models.ForeignKey):
if isinstance(field_object,models.ForeignKey):
old_related_obj = field_object.related_model.objects.filter(pk=int(old_value)).first()
new_related_obj = field_object.related_model.objects.filter(pk=int(new_value)).first()
old_display_value = getattr(old_related_obj, field_name) if old_related_obj else None
new_display_value = getattr(new_related_obj, field_name) if new_related_obj else None
old_value = old_display_value
new_value = new_display_value
changes[field_name] = {
"Old Value": old_value,
"New Value": new_value
}
return changes
return None
This is what I tried but to do but the if block never gets executed
Aaryan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.