2010-08-04 37 views
1

我想生成一個查詢集來查找不匹配。作爲一個例子Django Queryset過濾器(可能需要子查詢)

class Vehicle(models.Model): 
    car = models.CharField(max_length=100) 
    model= models.CharField(max_length=100) 
    passengers = models.IntegerField() 

我想生成一個查詢,我可以找到錯誤列出兩種不同型號的汽車。

沿着一條查詢的一條線,發現如果一輛汽車=牧馬人,模型=吉普找到汽車=牧馬人的實例,模型不是吉普。

這是可能在ORM內做的,還是我需要使用原始SQL?有人在#django提出了一個子查詢,但我不熟悉如何做到這一點

樣本輸出 也只是不匹配的車輛的查詢集(例如汽車=牧馬人,模型=福特存在一個對象,但汽車=牧馬人,模型=吉普另一個對象)。我正在考慮沒有能夠找到不匹配的輸入。這有意義嗎?

+1

定義的cars不要像那樣混淆你的模型。什麼是「一些汽車」和「一些模型」?外鍵? – 2010-08-04 15:16:46

+0

您應該舉例說明預期的輸入和輸出。目前有點難以理解你的意思。 – OmerGertel 2010-10-01 09:15:29

回答

0

如果我理解你需要建模+汽車是唯一的在一起,所以你需要先找到重複的記錄:

from django.db.models.aggregates import Count 

repetitve_cars_list = Vehicle.objects.values('car').annotate(count_car=Count('car')).filter(co 
unt_car__gt=1) 

這會給你這是與多個model