improved autocomplete

This commit is contained in:
Alexander Karpov 2022-10-22 12:29:51 +03:00
parent e249aef809
commit 23e30bbcb8

View File

@ -2,37 +2,38 @@ from search.models import Product, Category, Characteristic
def autocomplete_schema(val: str): def autocomplete_schema(val: str):
schema = [] schema = [
{
"coordinate": product["name"].lower().index(val.lower()),
"value": {
"type": "Name",
"value": product["name"],
},
}
for product in Product.objects.filter(name__unaccent__icontains=val).values(
"name"
)
]
schema.extend( schema.extend(
[ [
{ {
"coordinate": product["name"].index(val), "coordinate": cat["name"].lower().index(val.lower()),
"value": {
"type": "Name",
"value": product["name"],
},
}
for product in Product.objects.filter(name__contains=val).values("name")
]
)
schema.extend(
[
{
"coordinate": cat["name"].index(val),
"value": {"type": "Category", "value": cat["name"]}, "value": {"type": "Category", "value": cat["name"]},
} }
for cat in Category.objects.filter(name__contains=val).values("name") for cat in Category.objects.filter(name__unaccent__icontains=val).values(
] "name"
)
schema.extend(
[
{
"coordinate": char["name"].index(val),
"value": {"type": char["name"], "value": char["value"]},
}
for char in Characteristic.objects.filter(name__contains=val).values(
"name", "value"
) )
] ]
) )
schema.extend(
[
{
"coordinate": char["value"].lower().index(val.lower()),
"value": {"type": char["name"], "value": char["value"]},
}
for char in Characteristic.objects.filter(
value__unaccent__icontains=val
).values("name", "value")
]
)
return schema return schema