<p>如果有用的话试试这个。在</p>
<pre><code>def search_Schedule(request):
context_dict = {}
if request.method == 'POST':
query1 = request.POST.get('course_name_search',None)
query2 = request.POST.get('start_date_search',None)
query3 = request.POST.get('instructor_search',None)
if query1:
results = Schedules.objects.filter(course_name__icontains=query1)
if query2:
results = results.filter(start_time=datetime.datetime.strptime(query2, "%d%m%Y").date())
if query3:
results = results.filter(instructor__icontains=query3)
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query1 + ", " + query2 + ", and " + query3
else:
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query1 + " and " + query2
elif query3:
results = results.filter(instructor__icontains=query3) #changed this filter condition
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query1 + " and " + query3
else:
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query1
elif query2:
results = Schedules.objects.filter(start_time=datetime.datetime.strptime(query2, "%d%m%Y").date())
if query3:
results = results.filter(instructor__icontains=query3)
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query2 + " and " + query3
else:
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query2
elif query3:
results = Schedules.objects.filter(instructor__icontains=query3)
table = ScheduleTable(results)
if results.count():
context_dict['table'] = table
else:
context_dict['no_results'] = query3
return render(request, "schedule/search_schedule.html", context_dict)
</code></pre>