簡體   English   中英

如何制作使用兩個類的Django查詢集?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM