django我们可以在选择的相关模型上预取相关字段吗?

django我们可以在选择的相关模型上预取相关字段吗?,django,django-orm,Django,Django Orm,我需要为每个活动获取创建者的最新图像 例如,我有3种型号: class Event(..): create_by = ForeignKey(User, related_name='events_set') class User(..): ... class ProfileImage(..): user = ForeignKey(User, related_name='profile_images_set') image = ImageField(..) 所以我需要得到关于

我需要为每个活动获取创建者的最新图像

例如,我有3种型号:

class Event(..):
   create_by = ForeignKey(User, related_name='events_set')

class User(..):
...

class ProfileImage(..):
   user = ForeignKey(User, related_name='profile_images_set')
   image = ImageField(..)
所以我需要得到关于这次活动的详细信息,我有一个类似这样的任务:

Event.objects.all().prefetch_related('..').select_related('created_by')
Event.objects.all().prefetch_related('..').select_related(Prefetch('created_by', queryset=User.objects.all().prefetch_related(Prefetch('profile_images_set', queryset=ProfileImages.objects.filter(id=OuterRef('pk').latest('pk'))))
问题是,我还需要获取事件创建者的最后一张图像。 我尝试了
预回迁
,但它只能控制
预回迁相关的
。 大概是这样的:

Event.objects.all().prefetch_related('..').select_related('created_by')
Event.objects.all().prefetch_related('..').select_related(Prefetch('created_by', queryset=User.objects.all().prefetch_related(Prefetch('profile_images_set', queryset=ProfileImages.objects.filter(id=OuterRef('pk').latest('pk'))))
更新 当前工作查询集:

Event.objects.all().prefetch_related(.., 'created_by__profile_images_set')
但它能获取造物主的所有图像。 我也试过:

Event.objects.all().prefetch_related(..,Prefetch('created_by__profile_images_set',queryset=ProfileImage.objects.filter(pk=OuterRef('pk')).latest('pk')))
但我有一个错误:
ValueError:此查询集包含对外部查询的引用,只能在子查询中使用。

您能否尝试
Event.objects.all().prefetch\u related('created\u by\u image')
?我不明白你为什么要得到最新的消息user@Benbb96哦,有一个错误,我需要获取创建者的最新图像,我更改了查询集