Searching with respect to gender and BY name

14 views
Skip to first unread message

Surya Adhikari

unread,
Jun 28, 2019, 8:35:09 AM6/28/19
to Django users
# my coding looks like this in views.py but somehow it only search by name no matter which gender i select .what am i doing wrong?

def search(request):
if request.method=='POST':
srch = request.POST['srh'] 
srchs =  request.POST['gender']

if srch and srchs:
match = Snippet.objects.filter(Q(name__istartswith=srch)) 
matchs = Snippet.objects.filter(Q(gender__iexact=srchs))

if match and matchs:
return render (request,'search.html',{'sr':match})
#return render (request,'search.html',{'sr':match})
else:
messages.error(request,'no result found')
# return HttpResponse("<h1>No name found please Add names  </h1>")

else:
# return HttpResponseRedirect('/search/')
return render(request,'search.html')

return render(request,'search.html')

jjmutumi

unread,
Jun 28, 2019, 10:42:23 AM6/28/19
to Django users
Hello,

I think it should work if you build the query sequentially. Like:

def search(request):
if request.method=='POST':
srch = request.POST['srh']
srchs = request.POST['gender']

if srchs or srch:
query = Snippet.objects
if srch:
query = query.filter(Q(name__istartswith=srch))
if srchs:
query = query.filter(Q(gender__iexact=srchs))

if query.count() > 0:
return render (request,'search.html',{'sr': query})
else:
messages.error(request,'no result found')
return HttpResponse("<h1>No name found please Add names </h1>")
else:
return render(request,'search.html')

return render(request,'search.html')

Surya Adhikari

unread,
Jul 6, 2019, 7:55:26 AM7/6/19
to Django users
Thank you so much it worked!! 
Reply all
Reply to author
Forward
0 new messages