我有一个帖子模型,我想知道当前登录的用户是否喜欢该帖子:
是否可以进行此项工作,还是应该使用其他请求来了解用户是否喜欢该帖子:
class PostNode(DjangoObjectType):
id = graphene.ID(source='pk', required=True)
liked = graphene.Boolean(source=Like.objects.filter(user=info.context.user,post=Post.objects.get(pk=id)))
class Meta:
model = Post
interfaces = (graphene.relay.Node,)
(当然不起作用)
查询:
query {
posts {
edges {
node {
liked
title
text
}
}
}
}
结果:
{
"data": {
"posts": {
"edges": [
{
"node": {
"liked": false,
"title": "hi",
"text": "m"
}
},
{
"node": {
"liked": true,
"title": "blalblala",
"text": "blalalblala"
}
}
]
}
}
}
答案 0 :(得分:0)
您可以使用 custom resolvers 来实现此行为,如下所示:
class PostNode(DjangoObjectType):
id = graphene.ID(required=True)
liked = graphene.Boolean()
class Meta:
model = Post
interfaces = (graphene.relay.Node,)
def resolve_liked(parent, info):
# "parent" here is the Post model instance
return Like.objects.exists(user=info.context.user, post=parent)