2012-05-04 68 views
0

嗨,我不是很擅長英語,但我會盡力向自己解釋我最好的。我正在使用python和Django來創建一個web項目。 我這4款車型(這是最好的翻譯,我可以做的表和字段):使用另一個QuerySet過濾QuerySet

class Humans (models.Model): 
    name = models.CharField(max_length=15) 
    surname = models.CharField(max_length=15) 
    doc_num = models.CharField(max_length=11) 
    ... 

class Records (models.Model): 
    closing_state = models.CharField(max_length=2) 
    ... 
    humans = models.ManyToManyField(Humans, through='Reco_Huma') 

class Reco_Huma (models.Model): 
    id_record = models.ForeignKey(Records) 
    id_human = models.ForeignKey(Humans) 
    categorys = models.CharField(max_length=2) 
    reserv_identity = models.CharField(max_length=2) 
    repre_entity = models.CharField(max_length=2) 


class Observations (models.Model): 
    id_record = models.ForeignKey(Records) 
    text = models.CharField(max_length=80) 
    category = models.CharField(max_length=2, choices=CAT) 

現在給出從人類一doc_num,從觀察文本我希望得到一個QuerySet所有記錄。

爲了澄清我第一次這樣做:

q1 = Reco_Huma.objects.filter(id_human.doc_num=x) 
q2 = Observations.objects.filter(text=y) 

兩個查詢集給我id_record的列表,然後我想縱容該名單,並篩選記錄表id_record的

希望你能理解我提前

+0

你希望從你的查詢中得到什麼? – zsquare

回答

1

由於重組你的查詢,你要具有一定的人力和相關聯的所有記錄有一定的觀察。因此,它應該是:

result = Records.objects.filter(observations__text=y, humans__doc_num=x) 

作爲一般規則,如果你想用某種類型的對象就結了,它有助於從那裏查詢開始。