我想在我的REST API - see django docs on this篩選查詢參數。 然而,一個參數我想,以濾除只能通過模型@property在過濾器中使用自定義方法與Django的其餘框架
例如models.py:
class Listing(models.Model):
product = models.OneToOneField(Product, related_name='listing')
...
@property
def category(self):
return self.product.assets[0].category.name
這裏是設置在按照我的房屋API和django-filter docs
class ListingFilter(django_filters.FilterSet):
product = django_filters.CharFilter(name='product__name')
category = django_filters.CharFilter(name='category') #DOES NOT WORK!!
class Meta:
model = Listing
fields = ['product','category']
class ListingList(generics.ListCreateAPIView):
queryset = Listing.objects.all()
serializer_class = ListingSerializer
filter_class = ListingFilter
如何適當地過濾listing.category?它無法直接在列表模式中使用。
對於這種情況,這個答案的另一個問題可能幫助:http://stackoverflow.com/questions/14258338/django-rest-framework-filtering/35506369#35506369 – iankit