Как объединить результаты двух полей и показать их как одно в 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))