[英]How can I make a django query-set that uses two classes?
如何在Django查詢集中鏈接兩個類。 例如,我有一個Person類和一個Department類。 一個人有一個屬性工資,部門有一個屬性負責人。 我該如何查詢一個部門負責人的薪水。
我很樂意提供幫助:)
您不需要特殊的查詢, Department
對象上的leader
屬性使您可以訪問具有其所有屬性的完整Person
對象:
department = Department.objects.get(pk=1)
print(department.leader.salary)
在后台,上面的代碼將生成兩個SQL查詢器。 為了確保只發出一個查詢,您可以選擇使用select_related :
department = Department.objects.select_related('leader').get(pk=1)
print(department.leader.salary)
這樣,Django將在原始查詢期間獲取有關領導者的Person
對象的信息(而不是通常等到實際需要時才使用的“懶惰”方法)。 但是,這只是一種優化,通常並不需要。
如果要使用跨關系的對象中的字段來過濾查詢集,可以使用__
表示法 ,它表示兩個模型之間的關系:
departments = Department.objects.filter(leader__salary=100)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.