擅长:python、mysql、java
<p>您可以尝试向下搜索筛选方法,以最小化if语句:</p>
<pre><code>course_name_search = request.POST.get('course_name_search', None)
start_date_search = request.POST.get('start_date_search', None)
instructor_search = request.POST.get('instructor_search', None)
queryset = Schedules.objects.all()
if course_name_search:
queryset = queryset.filter(course_name__icontains=course_name_search)
if start_date_search:
queryset = queryset.filter(start_date=start_date_search)
if instructor_search:
queryset = queryset.filter(instructor__icontains=instructor_search)
# if none of the search params were filled in then return none
if not course_name_search and not start_date_search and not instructor_search:
queryset = Schedules.objects.none()
</code></pre>
<p>但是这里有一些警告,以及一些帮助您解决开始日期问题的方法,因为您是直接读取POST数据,所以在查询之前,您需要将您的start_date_搜索转换为实际日期。在</p>
<p>另一件对你有帮助的事情是最好使用GET而不是POST,然后你可以在模板中读取它来填充你现在填充到“no_results”中的所选值。在</p>