Невозможно использовать None в качестве значения запроса, когда я пытаюсь просмотреть страницу без поискового запроса

У меня есть рабочая форма поиска в моем base.html, но когда я пытаюсь получить доступ к странице листинга без передачи поискового запроса, я получаю ошибку "Cannot use None as a query value". views.py

def listing(request):

        if request.method == 'GET':
            search =  request.GET.get('search')       
            propertys = Paginator(Property.objects.filter(property_name__icontains =search).order_by('-listed_on'), 2)
            page = request.GET.get('page')
            propertys = propertys.get_page(page)
            nums = "p" * propertys.paginator.num_pages
            return render(request,"listing.html",{"propertys":propertys, "nums": nums, 'search':search})
        else:
            p = Paginator(Property.objects.order_by('-listed_on'), 2)
            page = request.GET.get('page')
            propertys = p.get_page(page)
            nums = "p" * propertys.paginator.num_pages
            return render(request,"listing.html", {"propertys":propertys, "nums": nums})

Вы не можете искать по None таким образом, но вы можете просто проверить сначала, имеет ли search значение, отличное от None, прежде чем вы действительно попробуете это сделать:

Заменить

propertys = Paginator(Property.objects.filter(property_name__icontains =search).order_by('-listed_on'), 2)

с

if search:
    propertys = Paginator(Property.objects.filter(property_name__icontains =search).order_by('-listed_on'), 2)
Вернуться на верх