From 621918af4a56e16269a8b4af529e6e6020ed92c5 Mon Sep 17 00:00:00 2001 From: Semyon Date: Tue, 12 Nov 2019 17:07:58 +0300 Subject: [PATCH] Fixed last fallback translation case --- apps/search_indexes/utils.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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