I’m building vue3 + django DRF project. I’m making my consumelists from and I want to filte bewteen two days. likes 2024-06-01 to 2024-06-30.
I used DateFromToRangeFilter but not work. please help. omz
My model.py
<code>class ConsumeDetails(models.Model):
date = models.DateField()
category = models.CharField(max_length=100)
subcategory = models.CharField(max_length=100)
vendor = models.CharField(max_length=100)
item = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=0)
remarks = models.CharField(max_length=100)
consumetype = models.ForeignKey(ConsumeType, on_delete=models.PROTECT)
consumepurpose = models.ForeignKey(ConsumePurpose, on_delete=models.PROTECT)
class Meta:
managed = True
app_label = 'myweb'
db_table = 'Consume_Details'
def __str__(self):
return self.date
</code>
<code>class ConsumeDetails(models.Model):
date = models.DateField()
category = models.CharField(max_length=100)
subcategory = models.CharField(max_length=100)
vendor = models.CharField(max_length=100)
item = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=0)
remarks = models.CharField(max_length=100)
consumetype = models.ForeignKey(ConsumeType, on_delete=models.PROTECT)
consumepurpose = models.ForeignKey(ConsumePurpose, on_delete=models.PROTECT)
class Meta:
managed = True
app_label = 'myweb'
db_table = 'Consume_Details'
def __str__(self):
return self.date
</code>
class ConsumeDetails(models.Model):
date = models.DateField()
category = models.CharField(max_length=100)
subcategory = models.CharField(max_length=100)
vendor = models.CharField(max_length=100)
item = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=0)
remarks = models.CharField(max_length=100)
consumetype = models.ForeignKey(ConsumeType, on_delete=models.PROTECT)
consumepurpose = models.ForeignKey(ConsumePurpose, on_delete=models.PROTECT)
class Meta:
managed = True
app_label = 'myweb'
db_table = 'Consume_Details'
def __str__(self):
return self.date
My filter.py
<code>class ConsumeDetailsFilter(FilterSet):
# date = filters.DateFilter(field_name='date')
RegDate= DateFromToRangeFilter(field_name='date', lookup_expr='gte',lable='date range')
category = filters.CharFilter(field_name='category', lookup_expr='icontains')
subcategory = filters.CharFilter(field_name='subcategory', lookup_expr='icontains')
vendor = filters.CharFilter(field_name='vendor', lookup_expr='icontains')
item = filters.CharFilter(field_name='item', lookup_expr='icontains')
class Meta:
model = ConsumeDetails
fields = ['RegDate','category', 'subcategory', 'vendor', 'item', 'price', 'remarks']
</code>
<code>class ConsumeDetailsFilter(FilterSet):
# date = filters.DateFilter(field_name='date')
RegDate= DateFromToRangeFilter(field_name='date', lookup_expr='gte',lable='date range')
category = filters.CharFilter(field_name='category', lookup_expr='icontains')
subcategory = filters.CharFilter(field_name='subcategory', lookup_expr='icontains')
vendor = filters.CharFilter(field_name='vendor', lookup_expr='icontains')
item = filters.CharFilter(field_name='item', lookup_expr='icontains')
class Meta:
model = ConsumeDetails
fields = ['RegDate','category', 'subcategory', 'vendor', 'item', 'price', 'remarks']
</code>
class ConsumeDetailsFilter(FilterSet):
# date = filters.DateFilter(field_name='date')
RegDate= DateFromToRangeFilter(field_name='date', lookup_expr='gte',lable='date range')
category = filters.CharFilter(field_name='category', lookup_expr='icontains')
subcategory = filters.CharFilter(field_name='subcategory', lookup_expr='icontains')
vendor = filters.CharFilter(field_name='vendor', lookup_expr='icontains')
item = filters.CharFilter(field_name='item', lookup_expr='icontains')
class Meta:
model = ConsumeDetails
fields = ['RegDate','category', 'subcategory', 'vendor', 'item', 'price', 'remarks']
My serializers.py
<code>class ConsumeDetailsSerializer(serializers.ModelSerializer):
consumepurpose = ConsumePurposeSerializer()
consumetype = ConsumeTypeSerializer()
class Meta:
model = ConsumeDetails
fields = '__all__'
</code>
<code>class ConsumeDetailsSerializer(serializers.ModelSerializer):
consumepurpose = ConsumePurposeSerializer()
consumetype = ConsumeTypeSerializer()
class Meta:
model = ConsumeDetails
fields = '__all__'
</code>
class ConsumeDetailsSerializer(serializers.ModelSerializer):
consumepurpose = ConsumePurposeSerializer()
consumetype = ConsumeTypeSerializer()
class Meta:
model = ConsumeDetails
fields = '__all__'
My views.py
<code>class ConsumeDetailsViewSet(ModelViewSet):
queryset = ConsumeDetails.objects.all()
serializer_class = ConsumeDetailsSerializer
filterset_fields = ['consumepurpose','consumetype','category','subcategory','RegDate']
search_fields = ['category','subcategory','vendor','item']
pagination_class = MyPageNumberPagination
</code>
<code>class ConsumeDetailsViewSet(ModelViewSet):
queryset = ConsumeDetails.objects.all()
serializer_class = ConsumeDetailsSerializer
filterset_fields = ['consumepurpose','consumetype','category','subcategory','RegDate']
search_fields = ['category','subcategory','vendor','item']
pagination_class = MyPageNumberPagination
</code>
class ConsumeDetailsViewSet(ModelViewSet):
queryset = ConsumeDetails.objects.all()
serializer_class = ConsumeDetailsSerializer
filterset_fields = ['consumepurpose','consumetype','category','subcategory','RegDate']
search_fields = ['category','subcategory','vendor','item']
pagination_class = MyPageNumberPagination
Error message in here
enter image description here
I want use star_date and end_date to filte the range like the link below
http://127.0.0.1:8000/accounts/consumedetails/?**start_date=2024-06-01&end_date=2024-06-30**
New contributor
New is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.