推荐项目:Django Auto-Prefetching —— 摆脱N+1查询的困扰
from django.db import models
class MyModel(models.Model):
related = models.ForeignKey(
'RelatedModel',
on_delete=models.CASCADE,
related_name='my_models'
)
# 使用 select_related 预加载外键关系
def get_queryset(self):
return MyModel.objects.select_related('related').all()
# 使用
queryset = MyModel.get_queryset()
for obj in queryset:
print(obj.related.some_field) # 不会产生额外的数据库查询
这个简单的例子展示了如何在Django中使用select\_related来预加载外键关联,以避免在遍历查询集合时发生N+1查询问题。这是一个提高Web应用程序性能的有效技巧。
评论已关闭