На главной домашней странице у меня есть форма поиска, которая ищет все данные ученика, курса, учителя и пользователей этого приложения, и для этого я сделал это. Это отлично работает. Но если ученик и учитель имеют одно и то же имя, то онотолько дает результат для одного ученика или учителя. Есть ли какой-либо другой метод для поиска всех данных ученика, курса, учителя и пользователей приложения только через одну форму поиска. ??А также этот метод icontains дает данные, чувствительные к регистру. Он ведет себя как точный метод, я использую mysql для базы данных.
views.py
def searchall(request):
q = request.GET.get('q')
if q:
courses = Course.objects.filter(title__icontains=q)
students = Student.objects.filter(name__icontains=q)
teachers = Teacher.objects.filter(name__icontains=q)
users = User.objects.filter(username__icontains=q)
if courses:
return render(request,'students/view_course.html',{'courses':courses})
elif students:
return render(request,'students/view_students.html',{'students':students})
elif teachers:
return render(request,'students/view_teacher.html',{'teachers':teachers})
elif users:
return render(request,'students/view_users.html',{'users':users})
else:
messages.info(request, 'no results found for {}'.format(q))
return redirect('students:home')
else:
return request('students:home')
шаблон
<li class="search-box">
<a class="nav-link hidden-sm-down" ><i class="iconsmind-Magnifi-Glass2"></i></a>
<form class="app-search" style="display: none;" action="{% url 'students:search_all' %}">
<input type="text" name="q" class="form-control" placeholder="Search & enter"> <a class="srh-btn"><i class="ti-close"></i></a>
</form>
</li>