社区!
我一直坚持为Django开发电子商店的过滤系统。 一些信息:
模型骨架:
类别: - 用于,类别
AttributeGroup: - 用于过滤器名称,例如。 "颜色"
属性: - 用于显示过滤器值,例如" Red"," Green"等
档案:
因此,一个项目只能在一个类别中。它可以具有来自相同或不同属性组的许多属性。非常接近或精确的EAV模型,但是可以,因为启用了硬缓存。
实际上,我的问题很少:
EDITED 让我们坚持最简单的方式 - 纯Django ORM。
在类别视图中,我获得了category_id和激活的过滤器属性列表。
所以项目查询集将是这样的: items = Item.objects.filter(category.id = category_id)
现在我需要对此项查询集使用过滤器。属性列表包含所有激活属性的ID。对于AND逻辑,它很清楚: 属性中的属性: items = items.filter(attribute.id = attribute)
但是我如何制作应该在不同属性组之间的OR逻辑?