为Django-rest-framework指定FilterSet

时间:2013-04-18 00:04:10

标签: django django-rest-framework

教程说:

class ProductFilter(django_filters.FilterSet):
    min_price = django_filters.NumberFilter(lookup_type='gte')
    max_price = django_filters.NumberFilter(lookup_type='lte')
    class Meta:
        model = Product
        fields = ['category', 'in_stock', 'min_price', 'max_price']

但是当我尝试这样做时,我收到一个错误:

FieldError: Cannot resolve keyword u'min_price' into field. Choices are: cantidad, datetime, enlace, id, id_fila, nivel

min_price不在我的模型中,但我需要创建一个新参数。 (这是一个例子) 我真的需要过滤日期。

1 个答案:

答案 0 :(得分:4)

请参阅django-filter documentation

由于您的min_pricemax_price过滤器与其引用的模型字段的名称不同,因此您需要提供name参数。

class ProductFilter(django_filters.FilterSet):
    min_price = django_filters.NumberFilter(name='price', lookup_type='gte')
    max_price = django_filters.NumberFilter(name='price', lookup_type='lte')
    class Meta:
        model = Product
        fields = ['category', 'in_stock', 'min_price', 'max_price']