<https://stackoverflow.com/posts/62401646/timeline> I am using django 
filter package to filter data based on start, end date and class of dues 
fields defined in my models. The problem is If I select only 
class_of_fields data is filtered but when I select start and end_date along 
with class_of_dues no data is filtered below are my codes

*models.py*


















*class DuesLevy(models.Model):    class_of_dues = 
models.CharField(max_length=30, default=options.CHOOSE, 
choices=options.CLASS_OF_DUES, blank=True)    payment_circle = 
models.CharField(max_length=30, default=options.CHOOSE, 
choices=options.PAYMENT_CIRCLE)    payment_option = 
models.CharField(max_length=30, default=options.CHOOSE, 
choices=options.PAYMENT_OPTION)    amount = 
models.DecimalField(max_digits=8, decimal_places=2)    transaction_id = 
models.CharField(max_length=30,  null=True, blank=True, editable=False, 
default=my_rand)    payment_channel = models.CharField(max_length=30, 
default=options.CHOOSE, choices=options.PAYMENT_CHANNEL_TYPE)    
payment_date = models.DateField()    start_date = models.DateField()    
end_date = models.DateField()    date_recorded = 
models.DateTimeField(auto_now_add=True)    user = 
models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)    
description = models.TextField(blank=True, null=True)    def 
__str__(self):        return self.amountfilters.py*




























*from .models import DuesLevy, Userfrom django_filters import widgetsimport 
django_filters from django import formsfrom django_select2 import forms as 
s2formsfrom backend import optionsclass 
DuesFilter(django_filters.FilterSet):    class_of_dues = 
django_filters.CharFilter(                    
widget=s2forms.Select2Widget(choices=options.CLASS_OF_DUES,                 
    attrs={'class':'form-control'}))    start_date = 
django_filters.DateFilter(field_name='payment_date',       
 widget=forms.DateInput(attrs={'class':'form-control', 'type':'date'}), 
lookup_expr='lt',label='Start Date')    end_date = 
django_filters.DateFilter(field_name='payment_date',       
widget=forms.DateInput(attrs={'class':'form-control', 'type':'date'}), 
lookup_expr='gt',label='End Date')    user = 
django_filters.ModelChoiceFilter(queryset=User.objects.all(),               
widget=s2forms.ModelSelect2Widget(                  attrs={'class': 
'form-control'},                  model=User,                  
search_fields=['member_id__icontains'],                  ))    class 
Meta():        model = DuesLevy        fields = ('class_of_dues', 
 'start_date', 'end_date')*
*views.py*












*class ListMemberDues(LoginRequiredMixin, View):    login_url = 
'/backoffice/'    def get(self, request):        queryset = 
DuesLevy.objects.filter(user=request.user)        query_filter = 
DuesFilter(request.GET, queryset)        context = {            
'form':query_filter.form,            'query':query_filter,        }        
return render(request, 'dashboard/list-member-dues.html', context)*

*templates.html*

 <form class="form-inline d-flex justify-content-around">
      <div class="col-sm-3 my-1">
          <div class="input-group">
            <div class="input-group-prepend">
              <div class="input-group-text">Class Of Dues</div>
            </div>
           {{ form.class_of_dues }}
          </div>
      </div>


       <div class="col-sm-3 my-1">
           <div class="input-group">
             <div class="input-group-prepend">
              <div class="input-group-text">Start Date</div>
             </div>
            {{ form.start_date }}
           </div>
       </div>
    <div class="col-sm-3 my-1">
           <div class="input-group">
             <div class="input-group-prepend">
              <div class="input-group-text">End Date</div>
             </div>
              {{ form.end_date }}
           </div>
       </div>

      <button type="submit" class="btn btn-success">Filter</button>
      {% csrf_token %}
    </form>
    {% if request.user %}
    <div class="row p-3 bg-light">               
      <div class="col-md-4">
        <h3>Account Details</h3>
        <h4>{{ request.user.first_name }} {{ single.user.last_name }}</h4>
        <h4>Phone {{ single.user.phone1 }}</h4>
        <h4>LCDA: {{ request.user.lcda }}</h4>
        <h4>Zone: {{ request.user.zone }}</h4>
        <h4>Area: {{ request.user.area }}</h4>
      </div>
      <div class="col-md-4">
        <img style="width: 200px; height: auto;" src="{{ 
request.user.additionalprofile.get_image_url }}" alt="">
      </div>

    </div>
    {% endif %}

    <table class="table">
        <tr>
            <th>Payment Date</th>
            <th>Categories</th>
            <th>Amount</th>
            <th>Channel</th>
            <th>Transaction ID</th>
        </tr>
        {% if query %}
          {% for q in query.qs %}
          <tr>
              <td>{{ q.date_recorded }}</td>
              <td>{{ q.class_of_dues }}</td>
              <td>&#8358;{{ q.amount }}</td>
              <td>{{ q.payment_channel }}</td>
              <td>{{ q.transaction_id }}</td>
          </tr>
          {% endfor %}

        {% endif %}
    </table>



-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/70b90b97-b046-4fe7-8c3b-e7ca8811549fo%40googlegroups.com.

Reply via email to