Я использую Relay, Django, Graphene Graphql.
Я хотел бы использовать django_filters для фильтрации нескольких аргументов типа размещения. Это описано в моем файле схемы, и банкомат выглядит так:
class AccommodationNode(DjangoObjectType) :
class Meta:
model = Accommodation
interfaces = (relay.Node,)
filter_fields = ['type']
Это прекрасно работает, если я передаю одну строку, например: {"accommodationType": "apartment"}
, но что, если я хочу отфильтровать все варианты размещения, которые являются апартаментами ИЛИ отелями? что-то вроде: {"accommodationType": ["apartment","hotel"]}
Это моя модель:
class Accommodation(models.Model):
ACCOMMODATION_TYPE_CHOICES = (
('apartment', 'Apartment'),
('host_family', 'Host Family'),
('residence', 'Residence'),
)
school = models.ForeignKey(School, on_delete=models.CASCADE, related_name='accommodations')
type = models.CharField(
max_length=200,
choices=ACCOMMODATION_TYPE_CHOICES,
default='apartment'
)
def __str__(self):
return str(self.school) + " - " + self.type
Есть ли способ сделать это без написания пользовательских фильтров, как предлагается здесь ? Только для одного поля фильтра это отличное решение, но в моем приложении будет около 50, включая связанные объекты...