From 44374108199e6e982036bbe0df03ff2e6f84221a Mon Sep 17 00:00:00 2001 From: Horilla Date: Thu, 5 Jun 2025 16:59:05 +0530 Subject: [PATCH] [UPDT] HORILLA: Add a function to traverse related fields to get verbose_name using Django's _meta --- horilla/models.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/horilla/models.py b/horilla/models.py index 82fadc302..64eb9a8b1 100644 --- a/horilla/models.py +++ b/horilla/models.py @@ -160,5 +160,21 @@ class HorillaModel(models.Model): obj.is_active = not obj.is_active obj.save() + @classmethod + def get_verbose_name_related_field(cls, field_path): + """ + Traverse related fields to get verbose_name using Django's _meta API. + Example: "employee_id__employee_work_info__reporting_manager_id" + """ + parts = field_path.split("__") + instance_model = cls + + for part in parts[:-1]: + field = instance_model._meta.get_field(part) + instance_model = field.remote_field.model + + final_field = instance_model()._meta.get_field(parts[-1]) + return final_field.verbose_name + auditlog.register(HorillaModel, serialize_data=True)