Как проверить, содержит ли экземпляр модели Django внешний ключ или нет

Мне нужно сериализовать данные, поступающие из журнала аудита Django, таким образом, чтобы при изменении поля присутствовало поле, имеющее значение внешнего ключа. Мне нужно получить значение этого внешнего ключа из базы данных и изменить внешний ключ на это значение.

def get_changes(self, obj): changes_data = obj.changes if changes_data: имя_модели = 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

Это то, что я пытался сделать, но блок if никогда не выполняется

Вернуться на верх