Django: Поиск товаров, начинающихся с запроса => product_name__starswith=query
Модель продукции
class Products(models.Model):
product_name = models.CharField(max_length=120)
Queryset
Products.objects.filter(product_name__startswith=query)
Я хочу найти все товары, начинающиеся только с поиска query
.
Например: Когда я ищу ca
, он возвращает
car
car cover
и когда я ищу car cover
, он возвращает только
car cover
Но я хочу, чтобы он также возвращал car
во втором поиске. Есть ли какой-нибудь способ сделать это? Пожалуйста, помогите мне. Спасибо.
Пожалуйста, попробуйте следующее, это может помочь:
Products.objects.filter(product_name__contains=query)
Здесь он будет искать, есть ли "query" где-нибудь в названии_продукта.
Вы можете сделать это, аннотировав литерал искомой строки Value
и используя его с F
:
# `query` supposed given
products = Products.objects.annotate(
query=Value(query, output_field=CharField())
).filter(
query=F("product_name")
).all()