如何比较列表并获得总匹配项数

时间:2013-02-16 17:17:03

标签: django django-views

Garage.cars:对象车库有 FK 的汽车

Person.carwishlst:对象人员有 FK 他们想要的汽车。

在Django中如何实现以下循环?...

获取人物所拥有的汽车总数 x 与汽车所拥有的相匹配。

结果: 的即。格兰奇有4辆你想要的车

假设,但是让我们说Grange模型有FK汽车= models.ManyToManyField(汽车)

人还有一个FK cars_wishlist = models.ManyToManyField(汽车)

2 个答案:

答案 0 :(得分:3)

假设carscarwishlst是列表:

您可以执行以下操作

def cars_you_want(cars, carwishlst):
    car_set = [val for val in cars if val in carwishlst]
    return len(car_set)

应该这样做。

答案 1 :(得分:0)

假设Garage.carsPerson.carwishlist都是列表,并且所包含的汽车都有合理的__eq__方法:

numberOfWishedCarsInGarage = len (set (garageX.cars) & set (personX.carwishlist) )