Django GraphQL AssertionError:AuthorType.Meta未传入有效模型
核心错误修复
你遇到的错误是AuthorType的Meta类中属性名拼写错误:把model写成了models,导致graphene无法识别关联的Django模型。
修复后的AuthorType代码:
class AuthorType(DjangoObjectType): class Meta: model = models.Profile # 此处将models改为model
额外的两处潜在问题修复
除核心错误外,代码还有两个小问题需要修正,避免后续出现异常:
Post模型的body字段定义错误
Post模型中body = models.TextField缺少括号,应改为:body = models.TextField()Query中的拼写错误
Query里的posts_bt_tag是笔误,应为posts_by_tag,对应的解析方法名也要同步修改:class Query(graphene.ObjectType): # 其他字段保持不变 posts_by_tag = graphene.List(PostType, tag=graphene.String()) # 修正bt为by # 其他解析方法保持不变 def resolve_posts_by_tag(root, info, tag): # 修正方法名 return ( models.Post.objects.prefetch_related("tags") .select_related("author") .filter(tags__name__iexact=tag) )
完成以上修改后,重启服务即可正常访问/graphql端点。
内容的提问来源于stack exchange,提问作者Graham Morby
相关产品推荐
相关产品推荐

