Django中select_related关联多模型(A→B→C)的写法咨询
当需要从模型A通过外键B,进一步关联到模型B的外键C时,有两种直观的实现方式:
方式一:双下划线关联多级字段
直接在 select_related 中使用双下划线串联关联的外键字段名,这是最常用的写法:
A.objects.select_related('B__C')...
方式二:链式调用 select_related
也可以通过多次调用 select_related,或者在单次调用中传入多个关联字段来实现:
# 多次链式调用 A.objects.select_related('B').select_related('B__C')... # 单次调用传入多个字段 A.objects.select_related('B', 'B__C')...
注意:
select_related仅支持外键(ForeignKey)和一对一(OneToOneField)关系,多对多关系需要使用prefetch_related。
内容的提问来源于stack exchange,提问作者y.dai
相关产品推荐
相关产品推荐

