Django GraphQL 订阅不返回任何数据

Django GraphQL subscription not returning any data

我正在使用 Graphene、Django 和 graphene-subscriptions 来定义 GraphQL 订阅。每当创建具有特定 Author 的新 Book 时,我都会尝试接收更新。我已按照入门指南进行操作,并尝试使用以下代码:

class SubscriptionBook(graphene.ObjectType):
    NewBooks = graphene.Field(BookType, Author = graphene.String(required=True))

    def resolve_NewBooks(root, info, Author):

        return root.filter( 
            lambda event:
                event.operation == CREATED  and
                isinstance(event.instance, Book) and
                event.instance.AuthorID == Author
        ).map(lambda event: event.instance)

不过好像不行。这条线似乎失败了:

event.instance.AuthorID == Author

我做错了什么?

我 运行 在定义这样的订阅时遇到的一个常见问题是在按 id 过滤时类型不匹配。

因为Author是一个字符串,如果event.instance.AuthorID是一个Django主键(一个int值),那么

event.instance.AuthorID == Author

将 return False.

您可以通过将 Author 值类型转换为 int 来解决此问题,如下所示:

event.instance.AuthorID == int(Author)