如何预取石墨烯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")
解决了什么