【发布时间】:2015-04-25 06:33:31
【问题描述】:
我有一个模型如下:
class Item(models.Model):
VENDOR_CHOICES = (
('a', 'A'),
('b', 'B')
)
vendor = models.CharField(max_length=16, choices=VENDOR_CHOICES)
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=6, decimal_places=2)
现在我有 2 个数据源,所以我从供应商 A 获取商品,从供应商 B 获取商品。
在某些情况下,供应商 A 的商品可能与供应商 B 不同,例如供应商 A 有 30 件商品,而供应商 B 有 442 件商品,其中只有 6 件商品是常见的。通用项目被定义为具有完全相同名称的项目。
我还需要找出供应商 a 和供应商 b 商品共有的商品价格差异,这意味着供应商 a 和供应商 b 中具有相同名称的商品。我有一个很大的号码。每个供应商的商品数量可能高达 10,000 件,因此需要一种有效的方法吗?
【问题讨论】:
-
从 1.11 版本开始,django 查询集有一个内置的交集和差分方法。我已将其添加为将来参考的答案
标签: django django-queryset set-theory