Django的。电子商店目录商品过滤器

时间:2015-03-05 08:24:32

标签: python django

社区!

我一直坚持为Django开发电子商店的过滤系统。 一些信息:

  • 小规模(少于2-3k项目)
  • django 1.7,postgresql。
  • 1级别类别结构。没有嵌套类别

模型骨架:

类别: - 用于,类别

  • 名称

AttributeGroup: - 用于过滤器名称,例如。 "颜色"

  • 名称

属性: - 用于显示过滤器值,例如" Red"," Green"等

  • 名称
  • attribute_group - AttributeGroup的外键

档案:

  • 名称
  • 属性 - 多对多属性
  • 类别 - 类别的外键。

因此,一个项目只能在一个类别中。它可以具有来自相同或不同属性组的许多属性。非常接近或精确的EAV模型,但是可以,因为启用了硬缓存。

实际上,我的问题很少:

  1. 使用这种规模的过滤器的最佳方法是什么? 我正在考虑使用ORM过滤器对关系数据库表的实际请求。 使用Postgre文档转到noSql方式。 使用solr与它的方面。
    1. 当一个属性组中有OR逻辑但不同属性组之间有AND逻辑时,如何重新创建逻辑?
  2. EDITED 让我们坚持最简单的方式 - 纯Django ORM。

    在类别视图中,我获得了category_id和激活的过滤器属性列表。

    所以项目查询集将是这样的: items = Item.objects.filter(category.id = category_id)

    现在我需要对此项查询集使用过滤器。属性列表包含所有激活属性的ID。对于AND逻辑,它很清楚: 属性中的属性:     items = items.filter(attribute.id = attribute)

    但是我如何制作应该在不同属性组之间的OR逻辑?

0 个答案:

没有答案