是不是可以在另一个内部使用一个查询集?

时间:2012-05-13 23:25:34

标签: django

模型:

class Car(models.Model):
    ...

class CarInstance(models.Model):
    car =  models.ForeignKey(Car)

在另一个内部使用一个查询集是不可能的? 像:

data1 = Car.objects.filter(id__in = [1,3,6])
data2 = CarInstance.objects.filter(car = data1)

我将来需要使用这两个queryset对象。而Car可以拥有一些CarInstance对象。我认为不可能在data2__data1之类的查询集中联合。

循环如下:

car_list = []
for i in data1:
  car_list.append(i.id)
data2 = CarInstance.objects.filter(car__in = car_list)

看起来无效。感谢。

2 个答案:

答案 0 :(得分:2)

看起来你想要这样做

data2 = CarInstance.objects.filter(car__id__in = [1,3,6])

答案 1 :(得分:1)

如果您想从data1对象获取ID,请使用:

data1_id = Car.objects.filter(id__in = [1,3,6]).values_list('id', flat=True)