Django Queryset的2个或更多外键级别

时间:2016-06-15 07:26:43

标签: django django-queryset

让我们说我有一个数据库关系模型:

loan与1 customer相关联。它包含多本书。每个book都有一个author。在Django查询集中,我想获得作者对所有贷款的描述。

所以使用get_related,如果我这样做,我只会点击一次DB而不是多次:

loans = Loan.objects.filter(id=current_loan).get_related('consists_of_book')

如何将其扩展为author外键?这个答案看起来不像我的正确答案:

loans = Loan.objects.filter(id=current_loan).get_related('consists_of_book').get_related('written_by_author')

1 个答案:

答案 0 :(得分:1)

你必须使用双下划线表示法,如下所示:

loans = Loan.objects.filter(id=current_loan)
    .prefetch_related('consists_of_book', 'consists_of_book__written_by_author')