2016-02-23 57 views
0

訪問模型和患者模型我怎樣才能從另一個查詢集模型的有效查詢集,而無需使用值或values_list

class Visit(models.Model): 
    patient = model.ForeignKey(Patient) 
    # other fields 

class Patient(models.Model): 
    # other fields 

訪問的查詢集這樣

visits = Visit.objects.filter(#conditions) 

如何在不使用值或values_list的情況下從訪問QuerySet中有效地獲取患者實例的QuerySet。即

patients_ids = visits.values_list("Patient__id", flat=True).distinct() 
patients = Patient.objects.filter(id__in=patients_ids) 

回答

0

這是一個有點難以理解你問什麼,但我認爲這可能是你想要什麼:

visits = Visit.objects.filter(name=somename, count=something) 

爲了獲得對應於病人,你會怎麼做:

patients = Patient.objects.filter(visit__name=somename, visit__count=something).distinct() 

說明:

Patient模型得到一個向後多對一一對一引用默認情況下稱爲另一個模型的小寫(在這種情況下爲visit)。然後,您可以使用雙下劃線功能__通過該關係進行查詢,並在Visit過濾器中執行與您要執行的測試相同的測試。

Source

相關問題