簡體   English   中英

在查詢中跨越 RelatedManager object [Django]

[英]Spanning a RelatedManager object in a query [Django]

  1. 我可以在 django 過濾器中跨越 model 關系,如下所示:

my_asset__business_unit=user.business_unit.id

  1. 如果最后一項返回多個值,我可以使用__inall()

my_asset__business_unit__in=user.business_units.all()

但是我如何跨越一個中間 model 返回多個值? 我想找到與這些值匹配的所有下游模型。


我試過了

my_asset__business_unit__in=user.businessunitmemberships.businessunit_set.all()

businessunitmemberships是沒有屬性'businessunit_set''RelatedManager' object 。

我也試過my_asset__business_unit__in=user.businessunitmemberships.all().businessunit_set.all()

但是中間的 .all .all()返回一個查詢集 object ,它又沒有屬性businessunit_set

我也試過my_asset__business_unit__in=user.businessunitmemberships.get().businessunit_set.all()

但這也不起作用,因為.get()將返回 3 個結果而不是 1。


編輯: 此處描述了整個模型,但我認為這使問題過於復雜。

目前尚不清楚您想要實現什么,但如果我理解正確,那么獲取與每個業務部門成員相關的所有業務部門就可以了:

my_asset__business_unit__in={
    unit
    for membership in user.businessunitmemberships.all()
    for unit in membership.businessunit_set.all()
}

集合理解是保持單位的唯一性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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