gpt4 book ai didi

python - Django,重复一个相关查询时多次命中数据库

转载 作者:行者123 更新时间:2023-12-04 07:14:16 25 4
gpt4 key购买 nike

这是模型:

class Category(models.Model):
name = models.TextField()

class Post(models.Model):
category = models.ForeignKey(Category)
现在,我想获取某个类别的帖子:
category = Category.objects.get(id=1)

posts = category.post_set.all()
# this line hit the DB

posts = category.post_set.all()
# and this line hit the DB again!
如何在这些关系中使用缓存的结果。我使用 Django rest-framework,它使 DB 为每个实例多次命中。

最佳答案

您可以与 .prefetch_related(…) [Django-doc] 合作:

category = Category.objects.prefetch_related('posts').get(id=1)
这将加载相关对象,并将在 Django/Python 层执行 JOINing。因此,这意味着 .all()调用将使用预取的对象。

关于python - Django,重复一个相关查询时多次命中数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68881213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com