title: Multiple filter options in view. Setting them filters correctly. Setting only one 'disables' the filter
body: <p>I have two forms. </p>
  
  <p>The first submits to the database. Works perfectly. 
  The second retrieves the database information, also works fine. </p>
  
  <p>However, I have filters within the form that are not working perfectly. </p>
  
  <p>I have several filters. </p>
  
  <ul>
  <li>Location</li>
  <li>Type</li>
  <li>Date Range</li>
  </ul>
  
  <p>If all filters are set, they work. </p>
  
  <p>If only one is set, they do not work. I can't figure out why this is happening. </p>
  
  <p>forms.py (Filter Form):</p>
  
  <pre><code>class OvertimeForm(forms.ModelForm):
      location = forms.ModelChoiceField(
          queryset=Location.objects.all(),
          empty_label="All Locations",
          widget=forms.Select(attrs={'class': 'form-control'}))
  
      overtime_type = forms.ModelChoiceField(
          queryset=overtimeTypes.objects.all(),
          empty_label='All Types', 
          widget=forms.Select(attrs={'class': 'form-control'}))
  
      dateStart = forms.DateField(
          widget=forms.DateInput(attrs={'class':'datepicker'}))
  
      dateEnd = forms.DateField(
          widget=forms.DateInput(attrs={'class':'datepicker'}))
  
      class Meta:
          model = Overtime
          fields = ['location']
          fields = ['overtime_type']
          field = ['dateStart']
          field = ['dateEnd']
  </code></pre>
  
  <p>views.py (Filter Form): </p>
  
  <pre><code>def Overtime_Results(request):
      userGroup = request.user.groups.get(name__in=['Comp1' ,'Comp2' , 'Comp3' , 'Comp4'])
      overtime_data = Overtime.objects.filter(client__name=userGroup)
      location = None
      overtime_type = None
      dateStart = date.today()
      dateEnd = date.today()
  
  if request.method == 'POST':
      form = OvertimeForm(data=request.POST)
  
      if form.is_valid():
          location = form.data['location']
          dateStart = form.data['dateStart']
          dateEnd = form.data['dateEnd']
          overtime_type = form.data['overtime_type']
  
          #This is where I think the problem is, something here isn't correct.
          overtime_data = Overtime.objects.filter(location=location, overtime_type=overtime_type, overtimeDateStart__range=(dateStart, dateEnd), client__name=userGroup) 
  
          return response
  else:
      form = OvertimeForm()
  
  template_name = "overtime/Overtime_Results.html"
  context = {
      'form': form,
      'location': location,
      'overtime_type': overtime_type,  
      'overtime_data': overtime_data,
  }
  
  return render(request, template_name, context)
  </code></pre>
  
  <p>In the html file: </p>
  
  <pre><code>    &lt;div class="col-md-3"&gt;{{ form.location }} 
        {{ form.dateStart }} &lt;p&gt;To&lt;/p&gt;
        {{ form.dateEnd }}
        {{ form.overtime_type }}
      &lt;/div&gt;
  </code></pre>
  
  <p>This is how the form looks: <a href="http://imgur.com/NFWU9ke" rel="nofollow">http://imgur.com/NFWU9ke</a></p>