使用模型继承的过滤器

2024-10-05 10:01:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前曾成功地使用Django过滤器来过滤如下模型:

class ProductFilter(django_filters.FilterSet):
    minCost = django_filters.NumberFilter(name="cost", lookup_type='gte')
    maxCost = django_filters.NumberFilter(name="cost", lookup_type='lte')
    class Meta:
        model = Product
        fields = ['name', 'minPrice', 'maxPrice', 'manufacturer',]

现在,我想使用Django过滤器在许多不同的模型之间进行过滤,这些模型都是从一个基本模型继承的(我的模型不是这么简单,而是为了说明这一点):

^{pr2}$

有没有一种方法可以使用Django过滤器来处理从BaseProduct继承的所有模型?在我的例子中,会有大量的模型,有些模型有大量的变量。在


Tags: djangoname模型过滤器typelookupfiltersclass
1条回答
网友
1楼 · 发布于 2024-10-05 10:01:16

添加到您的BaseProduct

 class Meta:
    abstract = True

https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes

基本模型不会用于创建任何数据库表。相反,当它被用作其他模型的基类时,它的字段将被添加到子类的字段中。在

https://django-filter.readthedocs.org/en/latest/usage.html#the-filter

就像ModelForm一样,我们也可以覆盖过滤器,或者使用声明性语法添加新的过滤器

^{pr2}$

相关问题 更多 >

    热门问题