Django_custom_filter для заказов и услуг

я хочу сделать модель фильтра по заказам, которая фильтрует заказы на основе услуг, предоставляемых прачечной в заказе Вот мои модели:

class Launderette(models.Model):
    launderer = models.ForeignKey(Launderer, null=True, on_delete= models.SET_NULL)
    name = models.CharField(max_length=200, null=True)
    available_time = models.CharField(max_length=500, null=True, blank=True)
    cover_photo = models.ImageField( default="0_GettyImages-1068728612.jpg")
    location = models.CharField(max_length=200, null=True)
    isBlocked = models.BooleanField(default=False)
    date_joined =models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return str(self.name)

class Services(models.Model):
    launderette = models.ForeignKey(Launderette, null=True, on_delete= models.SET_NULL)
    title = models.CharField(max_length=200,  null=True)
    price = models.FloatField(default=0)
    
    def __str__(self):
        return str(self.title)

class StatusChoice1(models.TextChoices):
    PENDING = 'pending', 'Pending'
    FINISHED = 'finished', 'Finished'
    ONGOING = 'ongoing', 'Ongoing'
    DECLINED = 'declined', 'Declined'
    Canceled = 'canceled', 'Canceled'

class Order(models.Model):
    client = models.ForeignKey(Client, null=True, on_delete= models.SET_NULL)
    launderette = models.ForeignKey(Launderette, null=True, on_delete= models.SET_NULL)
    description = models.TextField(blank=True, null=True)
    price = models.FloatField(default=0)
    amount = models.FloatField(default=0)
    services = models.ManyToManyField(Services)
    status =models.CharField(max_length=50, blank=True, null=True, choices=StatusChoice1.choices,default=StatusChoice1.PENDING)
    date_started = models.DateTimeField(null=True, blank=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    date_end = models.DateTimeField(null=True,  blank=True)
    def __str__(self):
        return str(self.client.user.username)

Вот мой текущий фильтр:

class OrderFilter2(django_filters.FilterSet):
    start_date = DateFilter(field_name="date_started", lookup_expr='gte')
    end_date = DateFilter(field_name="date_end", lookup_expr='lte')
    start_price = NumberFilter(field_name="price", lookup_expr='gte')
    end_price = NumberFilter(field_name="price", lookup_expr='lte')
    start_amount = NumberFilter(field_name="amount", lookup_expr='gte')
    end_amount = NumberFilter(field_name="amount", lookup_expr='lte')
    client_name = CharFilter(field_name='client__name', lookup_expr='icontains')
    status = ChoiceFilter(choices=FILTER_CHOICES, )
    class Meta:
        model = Order
        exclude = '__all__'
        fields = ['start_date', 'end_date', 'start_price','start_amount','end_amount', 'client_name','status',
        'services'
        ]

я не знаю как сделать фильтр на отображение только тех услуг, которые есть у прачки в заказе и фильтр по этим услугам

Вернуться на верх