【发布时间】:2021-08-06 01:14:07
【问题描述】:
我开始使用石墨烯,但有些东西我还不太了解,例如,当使用节点时,我有这个查询
{
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
如果有人能帮助我了解如何为 from_user 和 to_user 预取配置文件,我将不胜感激,因为在这种情况下,获取配置文件确实很昂贵
【问题讨论】:
标签: django graphql graphene-django