【发布时间】:2016-01-02 23:19:39
【问题描述】:
我有一个带有 ManyToMany 字段的 CartItem 模型到 AttributeChoice 模型。例如,CartItem 可以有 AttributeChoice“小”和“红色”。
然后我想找到我的CartItem,它们都具有“小”和“红色”属性。如果我执行以下操作:
CartItem.objects.get(cart=cart, product=product, attribute__in=attribute_list)
其中attribute_list 是AttributeChoice“小”和“红色”对象的列表。然后我也会得到只有“小”或“红色”的对象,但不能同时有。
所以这个查询都会匹配:
- CartItem A,小号,红色
- 购物车项目 B,小号
- 购物车项目 C,红色
而我想要的是只匹配 CartItem A 的查询。
现在...我可以创建很多 AND 语句,但我需要一个灵活的解决方案,并且可以包含 1 或 100 个要过滤的属性。所以传递一个对象列表会很棒。
想法?
【问题讨论】:
-
请展示您的模型类
-
mfcovington 是正确的。有一个重复的问题以不同的方式形成,但答案正确。我也会在这里发布答案。