Я не могу использовать Django Filter для связанного иностранного ключа в модели Django

Я не могу отфильтровать обратное поле Foreign key в моем фильтре. Вот моя основная модель:

class VendorService(models.Model):
    """
    Class for creating vendor services table models.
    """
    vendor_id = models.ForeignKey(CustomUser, null=False, blank=False, on_delete=models.CASCADE)
    service_id = models.ForeignKey(Service, null=False, blank=False, on_delete=models.CASCADE)
    business_name = models.TextField(null=True, blank=False)
    business_image = models.URLField(max_length=500, null=True, blank=False)
    working_since = models.TextField(null=True, blank=False)
    ...

А вот моя вторая модель:

class ServiceSubTypeDetail(models.Model):
    '''
    Additional Service Details
    '''
    title = models.CharField(max_length=255, null=True, blank=True)
    service_subtype = models.CharField(max_length=255, null=True, blank=True)
    service = models.ForeignKey(VendorService, related_name='subtypes', on_delete=models.CASCADE, null=True, blank=True)
    actual_price = models.FloatField(null=True, blank=True)
    ...

Моя вторая модель использует первую модель в качестве foreignkey

А вот мой класс фильтра, использующий библиотеку django-filter:

class ServiceFilter(filters.FilterSet):
    service_type = filters.CharFilter(field_name="service_id__service_type", lookup_expr='icontains')
    city = filters.CharFilter(field_name="city", lookup_expr='icontains')
    price = filters.RangeFilter(field_name="vendorpricing__discounted_price")
    subscription = filters.CharFilter(field_name="vendorplan__subscription_type", lookup_expr='iexact')
    property_type = filters.CharFilter(field_name="subtypes__title", lookup_expr='icontains')

    def __init__(self, *args, **kwargs):
        super(ServiceFilter, self).__init__(*args, **kwargs)
        # Dynamically add the price range filter based on the service_type
        service_type = self.data.get('service_type', None)
        if service_type == 'Venues':
            self.filters['price'] = filters.RangeFilter(field_name="venue_discounted_price_per_event")
        else:
            self.filters['price'] = filters.RangeFilter(field_name="vendorpricing__discounted_price")

    class Meta:
        model = VendorService
        fields = ['service_id__service_type', 'city', "vendorpricing__discounted_price", "venue_discounted_price_per_event", "subtypes__title"]

все остальные фильтры работают правильно, но property_type не работает вообще. Я также пробовал использовать метод

Пожалуйста, помогите!!!

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