首页 > 解决方案 > 在特定属性上使用 prefetch_related?

问题描述

我有以下代码:

pictures_of_model: Model3D.objects.prefetch_related('Pictures')

图片是另一个表,我在其中存储图片的 id,图片本身在 ImageField 中,以及作为外键的 modelid。如何确保 django 使用 ImageField 而不是图片的 id 预取属性?

pictures_of_model: Model3D.objects.prefetch_related('Pictures').picture

这不可能是正确的,对吧?图片是我的 ImageField ,它包含图片。

我感谢每一个帮助我学习的答案,谢谢!

标签: pythonsqldjangoforeign-keys

解决方案


# You need to import Prefetch

from django.db.models import Prefetch

# Your query should be like this

Model3D.objects.prefetch_related(Prefetch('pictures', queryset=Pictures.objects.only('picture').all())).all()


# Where models could be

Class Pictures(models.Model):
    picture = ...

Class Model3D(models.Model):
    pictures = ..

推荐阅读