我有一个与此类似的数据模型(简化):
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
1}}直接,Mobility
到Transfer
)。
这个问题与this other question的不同之处在于,在我的情况下,我需要经历两个关系,而且这也是一个复合条件。
答案 0 :(得分:1)
只需使用double-underscore notation进行跨越关系的查找即可。在这种情况下,可以这样做:
transfer_lines = TransferLine.objects.filter(transfer__mobility=mobility,
organism=organism)
答案 1 :(得分:1)
另一种方法是使用ForeignKey
reverse relation:
tlines = my_organisam.transferline_set.filter(transfer__mobility=my_mobility)