Я хочу использовать фильтр независимо от пробельных символов в djangorestframework
у меня есть
class KceeService:
def getTbBookCrwalingByTitleAndWriter(title, writer):
bookData = []
queryset = tb_book_crawling.objects.filter(title__icontains=title,
writer__icontains=writer).order_by('-publish_date')
for query in queryset:
bookData.append(TbBookCrawlingSerializer(query).data)
return bookData
but title = 'new york 1' , реальные данные колонки = 'new york1'
Итак, bookData это []
как использовать данные title & column для преодоления пробелов?
Мне нужна твоя помощь.
спасибо, вы
я удалил пробелы .
но, многие названия имеют те же проблемы.
как использовать filter() для преодоления пробелов.
Одним из вариантов может быть разделение поискового запроса по пробелам и проверка наличия каждого отдельного слова.
class KceeService:
def getTbBookCrwalingByTitleAndWriter(title, writer):
queryset = tb_book_crawling.objects.filter(writer__icontains=writer)
search_terms = title.split()
if len(search_terms) == 0:
# This is optional - remove this if you want to allow users to enter an empty search.
raise ParseError("No search terms")
for search_term in search_terms:
queryset = queryset.filter(title__icontains=search_term)
queryset = queryset.order_by('-publish_date')
bookData = [TbBookCrawlingSerializer(query).data for query in queryset]
return bookData
Так, поисковый запрос "new york 1" проверит, что "new", "york" и "1" появились в вашем названии.
В этом случае будут некоторые странные эффекты - если вы ищете "дом смеха", он также будет соответствовать "скотобойне". Но это может быть нормально для вашего приложения - я не знаю.