我正在使用 Relay、Django、Graphene Graphql。
我想使用 django_filters 过滤住宿类型的多个参数。这在我的架构文件中进行了描述,atm 看起来像:
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 个,包括链接对象......