Fix fallback logic for object name extraction in search.
Updated the fallback chain to check for "title" if "name" is unavailable when extracting object names in Elasticsearch results. This ensures better handling of hits where "title" is present instead of "name".
This commit is contained in:
parent
0cb4ae42a4
commit
974568cdee
1 changed files with 4 additions and 2 deletions
|
|
@ -69,7 +69,7 @@ def process_query(query: str = ""):
|
|||
results = {"products": [], "categories": [], "brands": [], "posts": []}
|
||||
for hit in response.hits:
|
||||
obj_uuid = getattr(hit, "uuid", None) or hit.meta.id
|
||||
obj_name = getattr(hit, "name", None) or "N/A"
|
||||
obj_name = getattr(hit, "name", None) or getattr(hit, "title", None) or "N/A"
|
||||
# Safely generate a slug
|
||||
obj_slug = getattr(hit, "slug", None) or slugify(obj_name)
|
||||
|
||||
|
|
@ -160,9 +160,11 @@ def _add_multilang_fields(cls):
|
|||
},
|
||||
),
|
||||
)
|
||||
|
||||
# prepare_name_{lc} to ensure no None values
|
||||
def make_prepare(attr):
|
||||
return lambda self, instance: getattr(instance, attr, "") or ""
|
||||
|
||||
setattr(cls, f"prepare_{name_field}", make_prepare(name_field))
|
||||
|
||||
# description_{lc}
|
||||
|
|
@ -181,4 +183,4 @@ def _add_multilang_fields(cls):
|
|||
},
|
||||
),
|
||||
)
|
||||
setattr(cls, f"prepare_{desc_field}", make_prepare(desc_field))
|
||||
setattr(cls, f"prepare_{desc_field}", make_prepare(desc_field))
|
||||
|
|
|
|||
Loading…
Reference in a new issue