Проблема с панелью поиска в 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".