gpt4 book ai didi

python - Django:按交集结果过滤查询集

转载 作者:行者123 更新时间:2023-11-29 12:46:52 25 4
gpt4 key购买 nike

假设我有一个与功能处于 M2M 关系的项目模型:

class Item(models.Model):
features = models.ManyToManyField(to = 'Feature')

现在我想过滤 Item 查询集以仅包含至少具有所有指定功能的 Items。

假设可能的功能是:相机触摸屏键盘

现在我想选择所有具有相机和键盘的项目

有什么解决办法吗?

最佳答案

假设特征的模型有一个名为“名称”的字段,您可以在值列表中过滤与该字段匹配的项目。这样的事情会起作用:

Item.objects.filter(features__name__in=['Camera', 'Touchscreen', 'Keyboard'])

更新:

作为stalkhere , 要获得与您需要对查询执行许多“过滤器”的所有功能相匹配的项目。动态获取它的一种方法是:

features = ['Camera', 'Touchscreen', 'Keyboard']
items = Item.objects.all()

for feature in features:
items = items.filter(feature__name=feature)

通过这种方式,您可以传递一个动态的特征列表来匹配项目。

关于python - Django:按交集结果过滤查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com