How to set start and end date in django_filter's DateFromToRangeFilter?

I want to add conditions in my start date, like start date have to be <= today and end date > today

class PartLogFilter(django_filters.FilterSet):
    date_range = django_filters.DateFromToRangeFilter(
        label='By Date Range',
        method='filter_by_range',
        widget=RangeWidget(attrs={'class': 'datepicker', 'type': 'date'})
    )
    class Meta:
        model = PartLog
        fields = ['date_range']
    def filter_by_range(self, queryset, name, value):
        start = value.start
        end = value.stop
        return queryset.filter(transaction_time__gte=start, transaction_time__lte=end)
from django.utils import timezone
from django_filters import FilterSet, DateFromToRangeFilter
from django_filters.widgets import RangeWidget
from .models import PartLog  # Assuming your model is named PartLog

class PartLogFilter(FilterSet):
    date_range = DateFromToRangeFilter(
        label='By Date Range',
        method='filter_by_range',
        widget=RangeWidget(attrs={'class': 'datepicker', 'type': 'date'})
    )

    class Meta:
        model = PartLog
        fields = ['date_range']

    def filter_by_range(self, queryset, name, value):
        # Get today's date
        today = timezone.now().date()
        
        start = value.start
        end = value.stop
        
        # Check if start date is less than or equal to today and end date is greater than today
        if start and end:
            if start <= today and end > today:
                return queryset.filter(transaction_time__gte=start, transaction_time__lte=end)
            else:
                # You might want to raise an error or handle this scenario appropriately
                return queryset.none()  # Return no results if conditions are not met
        elif start:
            # Only start date provided
            if start <= today:
                return queryset.filter(transaction_time__gte=start)
        elif end:
            # Only end date provided
            if end > today:
                return queryset.filter(transaction_time__lte=end)
        
        return queryset  # Return the original queryset if no valid date range is provided