如何预取石墨烯django中直接无关的场

如何预取石墨烯django中直接无关的场,django,graphql,graphene-django,Django,Graphql,Graphene Django,我开始使用石墨烯,但有些东西我还不太了解,例如,当使用节点时,我有这个查询 { orders { edges { node { id fromUser { id username userprofile{ image id } } toUser { id

我开始使用石墨烯,但有些东西我还不太了解,例如,当使用节点时,我有这个查询

{
  orders {
    edges {
      node {
        id
        fromUser {
          id
          username
          userprofile{
            image
            id
          }
        }
        toUser {
          id
          username
          userprofile{
            image
            id
          }
        }
      }
    }
  }
}
这是非常好的,因为它允许我获取与用户相关的给定配置文件的配置文件和图像,即使用户是配置文件中的外键,但是为了获取每个用户的配置文件,必须执行的查询非常昂贵

我的模特看起来像这样

class Order(models.Model):
    from_user = models.ForeignKey(User, on_delete=models.PROTECT, related_name="from_user")
    to_user = models.ForeignKey(User, on_delete=models.PROTECT, related_name="to_user")
    ....

class UserProfile(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    image = models.ImageField(null=True)
我现在的问题是

orders = Order.objects.select_related('from_user','to_user').filter(
            Q(from_user=user) |
            Q(to_user=user)
            ).order_by("-id")
return orders

如果有人能帮助我知道如何从用户和用户预取配置文件,我将不胜感激,因为获取配置文件确实很昂贵,我的坏朋友应该先尝试一下我的想法

orders = PaymentOrder.objects.select_related('from_user','to_user',"from_user__userprofile","to_user__userprofile").filter(
            Q(from_user=user) |
            Q(to_user=user)
            ).order_by("-id")
解决了什么