@Gelyano

Как реализовать поиск по артикулу с «-» и без «-»?

Сайт на Django
База данных MySQL

На сайте у меня реализован поиск по наименованию товара и по артикулу.
def search_results(request):
    query = request.GET.get('q')

    regex_query = fr'\b{re.escape(query)}\b|\b{re.escape(query.replace("-", ""))}\b'

    products = Product.objects.filter(
        Q(product_name__icontains=query) |
        Q(product_articul__icontains=query) |
        Q(product_OEM__icontains=query) |
        Q(product_articul__iregex=regex_query)
    )

    return render(request, 'main/search_results.html', {'products': products, 'query': query})

Вопрос в том, как модифицировать поиск по артикулу так, чтоб он искал артикул без тире, если в базе данных он с тире, например по запросу "7X7700", надо чтоб находил "7X-7700" ?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Проще всего - нормализовать артикулы в базе, приведя их в единый формат. Если надо сохранить точное написание артикула, то сделать два поля - оригинальный артикул и нормализованный.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы