【发布时间】:2019-04-03 10:30:57
【问题描述】:
任何人都可以帮助在 DRF 中进行过滤。
我有一些产品型号,比如Product 和经理ProductManager:
class ProductItem(Model):
price = DecimalField()
class Product(Model):
items = ManyToManyField(ProductItem)
priceman = ProductManager()
class ProductManager(Manager):
def get_queryset(self):
qs = super().get_queryset().annotate(total_price=Sum('items__price'))
return qs
这里 if 过滤器类:
class ProductFilter(django_filters.rest_framework.FilterSet):
class Meta:
model = Product
fields = {
'total_price': ['lt', 'gt'],
}
这里是视图:
class ProductViewSet(ModelViewSet):
queryset = Product.priceman.all()
filterset_class = ProductFilter
我得到了错误:
TypeError: 'Meta.fields' contains fields that are not defined on this FilterSet: total_price
我应该如何配置过滤器类以使其工作?
【问题讨论】:
标签: django django-rest-framework django-filter django-annotate