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()
Вернуться на верх