两个查询集和Django有什么区别?

时间:2018-12-06 08:29:58

标签: python django django-queryset difference

我有两个查询集,我想得到它们之间的区别 并将它们传递给一个查询以在我的视图中使用它并显示到我的模板

for price_date in pkg.prices_dates.all():
    for territory in price_date.territory.all():
         territory

结果: 英国 比利时

for territory in pkg.territories.all():
    territory

结果: 比利时 加拿大 法国 英国

我想得到 加拿大 法国

def get_context_data(self, **kwargs):
    data = super().get_context_data(**kwargs)

    data.update({

        'territory_not_selected':#####
    })

1 个答案:

答案 0 :(得分:0)

如果您想获得每公斤的差异

all_territories = pkg.territories.all()
difference = {}
for price_date in pkg.prices_dates.all():
    current_territories = price_date.territory.all():
    difference[pkg.id] = list(set(all_territories) - set(current_territories))

结果将是difference字典,其中每个键都是一个pkg id,并具有不同的值。