我有一个模型共同项目如下:Django的查询得到基于属性
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中具有相同名称的项目。我有一个很大的没有。的项目可能会高达每个供应商10K项目,所以需要一个有效的方法来做到这一点?
从版本1.11开始,django查询集具有内置的交集和差异方法。我已经添加了它作为未来参考的答案 –