Django 过滤一个多对多的 ID 列表

Django filter a many-to-many list of IDs

我正在尝试过滤模型上的多对多字段,我在 URL...

中给出逗号分隔的 ID 列表

ids = 3,7

cat_ids = self.request.QUERY_PARAMS.get('cat_ids', None)
super(Filter, self).get_queryset(*args,**kwargs).filter(categories__id_in=cat_ids)

Error: TypeError: Related Field got invalid lookup: id_in

这可能吗?

应该是categories__id__in(双下划线)

Django documentation: QuerySet API reference

更新:如果有

a comma separated list of ids

你的意思是用逗号分隔 string 个 id,那么你应该:

cat_ids = self.request.QUERY_PARAMS.get('cat_ids', None).split(',')