簡體   English   中英

在Django中查詢四個模型

[英]Querying through four models in Django

我有一個與此類似的數據模型(簡化):

class Mobility(models.Model):
    pass

class Transfer(models.Model):
    mobility = models.ForeignKey(Mobility)

class Organism(models.Model):
    pass

class TransferLine(models.Model):
    transfer = models.ForeignKey(Transfer)
    organism = models.ForeignKey(Organism)

我有一個Mobility實例和一個Organism實例,並且我想獲取所有與兩者都相關的TransferLine實例(直接與Organism以及與通過TransferMobility )。

這個問題與另一個問題的不同之處在於,就我而言,我需要經歷兩個關系,並且還有一個復合條件。

只需使用雙下划線符號即可進行跨越關系的查找。 在這種情況下,可以這樣進行:

transfer_lines = TransferLine.objects.filter(transfer__mobility=mobility, 
                                             organism=organism)

另一種方法是使用ForeignKey 反向關系

tlines = my_organisam.transferline_set.filter(transfer__mobility=my_mobility)

暫無
暫無

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

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