Проблема с панелью поиска в Django и HTML

Я создал панель поиска на Django и HTML, однако это вызывает у меня проблемы. Если я введу "Apple iPhone 13 Pro" в панель поиска, она не найдет никаких результатов, потому что URL не закодирован. URL имеет следующий вид: Apple+iPhone+13+Pro, а должен быть: Apple+iPhone%C2%A0%. Как я могу решить?

urls.py

urlpatterns = [
 path('search', Search.as_view(), name='search_fields')
]

views.py

class Search(ListView):
 template_name = 'blog.html'
 paginate_by = 10
 
 def get_queryset(self):
  query = self.request.GET.get('ricerca')
  object_list = Post.objects.filter(Q(titolo_post=query)).order_by('-data')
  return object_list

views.py

Я думаю, что причина того, что вы не получаете результат, не в этом. Вы уверены, что ваша фильтрация объектов работает? И убедитесь, что то, что вы получите с помощью GET.get(), распечатав его.

class Search(ListView):
 template_name = 'blog.html'
 paginate_by = 10
 
 def get_queryset(self):
  query = self.request.GET.get('ricerca')
  print(query,"*"*20)
  object_list = Post.objects.filter(Q(titolo_post__icontains=query)).order_by('-data')
  return object_list

Результат, который я получаю, если ввожу как: "Samsung S22 Ultra". Однако, если я введу "Apple iPhone 13 Pro", так как там есть номер, он не найдет никаких результатов, потому что URL должен быть: "Apple + iPhone%C2%A013 + Pro".

Вернуться на верх