【发布时间】:2014-11-25 20:07:56
【问题描述】:
如何在django-filter中聚合两个字段的结果并显示为一个?
我们以这样的模型为例:
class Animal(object):
LEGS_CHOICES = (2, 4, 8)
legs = models.PositiveSmallIntegerField(choices=LEGS_CHOICES)
class Dog(Animal):
pass
class Spider(Animal):
pass
我的 django-filter 过滤器类:
class AnimalFilterSet(django_filters.FilterSet):
legs = django_filters.MultipleChoiceFilter(choices=Animal.LEGS_CHOICES, widget=forms.CheckboxSelectMultiple())
class Meta:
model = Animal
fields = ['legs']
我想通过相同的字段过滤这两个模型并将它们显示为一个。
使用查询集我可以这样做:
Animal.objects.filter(Q(dog__legs = 4) | Q(spider__legs = 4))
【问题讨论】:
标签: django-filter