Django выводит результат поиска в зависимости от того, какая кнопка отправлена
когда я пытаюсь выполнить поиск из навигационной панели, я хочу, чтобы выполнялся простой запрос на основе input type="submit" и name="searchInput". Когда я отправляю вторую форму со страницы поиска, я хочу, чтобы произошел другой запрос и выдал мне страницу поиска с данными на ней. однако он продолжает перенаправлять меня на главную страницу
def home(request) :
q = request.GET.get('searchInput')
if q!=-1:
offres = Offre.objects.filter(
Q(title__icontains=q) |
Q(user__username__icontains=q) |
Q(description__icontains=q) |
Q(wilaya__name__icontains=q)
)
context = {
'offres': offres,
}
return render(request,'searchPage.html',context)
return render(request,'index.html',{})
def is_valid_query_parameter(parameter):
return (parameter!='' and parameter is not None)
def search(request) :
if request.GET['submit'] == 'searchInput':
q = request.GET.get('searchInput') if request.GET.get('searchInput') !=None else ''
offres = Offre.objects.filter(
Q(title__icontains=q)|
Q(user__username__icontains=q)|
Q(description__icontains=q)|
Q(wilaya__name__icontains=q)|
Q(category__value=q)
)
context = {
'offres':offres,
}
return render(request,'searchPage.html',context)
wilaya = request.GET.get('wilaya')
hotel = request.GET.get('hotel')
house = request.GET.get('house')
land =request.GET.get('land')
nbedrooms = request.GET.get('bedrooms')
nbathrooms = request.GET.get('bathrooms')
minPrice = request.GET.get('minPrice')
maxPrice = request.GET.get('minPrice')
wifi = request.GET.get('wifi')
kitchen = request.GET.get('kitchen')
furniture = request.GET.get('furniture')
# mustInclude = {'wifi' : wifi,
# 'kitchen' : kitchen,
# 'furniture' :furniture }
# excludeList = []
qs = Offre.objects.all()
if is_valid_query_parameter(wilaya) :
qs.filter(wilaya__number = wilaya)
if not is_valid_query_parameter(hotel) :
qs.exclude(category__value = 'hotel' )
if not is_valid_query_parameter(house) :
qs.exclude(category__value = 'house' )
if not is_valid_query_parameter(land) :
qs.exclude(category__value = 'land' )
if is_valid_query_parameter(nbedrooms):
qs.filter(numberOfBedrooms = nbedrooms)
if is_valid_query_parameter(nbathrooms):
qs.filter(numberOfBathrooms = nbathrooms)
if is_valid_query_parameter(minPrice) :
qs.filter(price__gte=minPrice)
if is_valid_query_parameter(maxPrice):
qs.filter(price_lte = maxPrice)
if not(is_valid_query_parameter(wifi) and is_valid_query_parameter(kitchen) and is_valid_query_parameter(furniture)):
if is_valid_query_parameter(wifi) :
qs.filter(wifi=True)
if is_valid_query_parameter(kitchen) :
qs.filter(kitchen=True)
if is_valid_query_parameter(furniture) :
qs.filter(furniture=True)
return render(request,'searchPage.html',{'offres':qs})