Вот мой взгляд:
def search(request):
if request.method == 'GET':
try:
q = request.GET.get('search_box', None)
s_or_l = request.GET.get('s_or_l', None)
p_class = request.GET.get('p_class', None)
if p_class:
posts = Listing.objects.filter(title__contains=q, is_live=1, sale_or_lease=s_or_l,
property_class=p_class) | \
Listing.objects.filter(street_address__contains=q, is_live=1, sale_or_lease=s_or_l,
property_class=p_class) | \
Listing.objects.filter(city__contains=q, is_live=1, sale_or_lease=s_or_l,
property_class=p_class) | \
Listing.objects.filter(state__contains=q, is_live=1, sale_or_lease=s_or_l,
property_class=p_class)
else:
posts = Listing.objects.filter(title__contains=q, is_live=1, sale_or_lease=s_or_l) | \
Listing.objects.filter(street_address__contains=q, is_live=1, sale_or_lease=s_or_l) | \
Listing.objects.filter(city__contains=q, is_live=1, sale_or_lease=s_or_l) | \
Listing.objects.filter(state__contains=q, is_live=1, sale_or_lease=s_or_l)
return render(request, 'search/results.html', {'posts': posts, 'q': q})
except KeyError:
return redirect('home')
Для свойства с city
, установленным в "Грин-Бэй", следующие поиски работают как задумано:
green
bay
Green Bay
, но green bay
<- не работает. Почему это? Как я могу это исправить? </p>
Почему он чувствителен только к регистру, когда есть пробел? Дайте мне знать, если нужна дополнительная информация. Я бы хотел исправить это как можно скорее.