diff --git a/apps/search_indexes/utils.py b/apps/search_indexes/utils.py index c91b9e4a..b88a1da3 100644 --- a/apps/search_indexes/utils.py +++ b/apps/search_indexes/utils.py @@ -230,12 +230,14 @@ def get_translated_value(value): return None elif not isinstance(value, dict): field_dict = value.to_dict() - elif isinstance(value, dict): + else: field_dict = value - value = field_dict.get(get_current_locale()) + field_dict = {k: v for k, v in field_dict.items() if v is not None} + result = field_dict.get(get_current_locale(), None) # fallback - if value is None: - value = field_dict.get(get_default_locale()) - if value is None: - value = field_dict.get(next(iter(field_dict.keys()), None)) - return value + if result is None: + result = field_dict.get(get_default_locale(), None) + if result is None: + values = list(field_dict.values()) + result = values[0] if values else None + return result