表格过滤器-FloatField不支持的查找'gte'

问题描述 投票:0回答:1

我正在尝试制作FormFilter。

我的模型中有类似的东西:

class TabelaPrecoItem(models.Model):
    [...]
    preco = models.FloatField()

我的FormFilter:

class TabelaItemProdutosFilter(django_filters.FilterSet):
    preco__gte = django_filters.NumberFilter(lookup_expr='gte')
    preco__lte = django_filters.NumberFilter(lookup_expr='lte')

    class Meta:
        model = TabelaPrecoItem
        fields = ['preco__gte', 'preco__lte']

当我填写输入并进行搜索时,出现以下错误:对FloatField的不支持的查找'gte'或不允许在字段上加入。

我没有找到任何可以帮助我的东西。我已经尝试使用NumericRangeField,但是我不知道如何将其放在模板的2个不同输入中。

python django python-3.x django-filter
1个回答
0
投票

我确定的是,您可以在FloatFields上使用__gte__lte过滤器。我不知道“不允许参加比赛”的另一种可能性是什么。我通常使用功能更强大的表示形式对过滤器字段进行编码,例如

fields = {
    'desc__ft':['gte','lte','exact'],
    ...
}

这将在通过外键字段ft访问的对象的Float字段desc上产生三个过滤器。

fields中的声明性过滤器和条目是否互斥?您似乎在告诉它以两种不同的方式创建相同的两个过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.