You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Graphene Django项目配置中引用多个Schema文件用于GraphQL访问

解决Graphene-Django多App Schema合并问题

graphene-django的GRAPHENE["SCHEMA"]配置只接受单个schema路径,没法直接填多个App的schema,所以你之前的列表写法肯定不行。正确的做法是在项目根目录创建一个总schema,把两个App的schema合并后再配置,步骤如下:

1. 创建项目根目录的总schema文件

在你的Django项目根目录(和settings.py同目录)新建一个schema.py文件,内容如下:

import graphene
# 导入两个App各自的Query和Mutation(如果有Mutation的话)
from blog.schema import Query as BlogQuery
from newsletter.schema import Query as NewsletterQuery
from blog.schema import Mutation as BlogMutation  # 没有Mutation可以删掉这行
from newsletter.schema import Mutation as NewsletterMutation  # 没有Mutation可以删掉这行

# 合并查询类
class Query(BlogQuery, NewsletterQuery, graphene.ObjectType):
    pass

# 合并变更类(如果两个App都有Mutation才需要,没有的话可以省略这部分)
class Mutation(BlogMutation, NewsletterMutation, graphene.ObjectType):
    pass

# 创建总schema
schema = graphene.Schema(query=Query, mutation=Mutation)  # 如果没有Mutation,就写schema = graphene.Schema(query=Query)

2. 修改settings.py的GRAPHENE配置

把GRAPHENE配置里的SCHEMA指向这个总schema:

GRAPHENE = {
    "SCHEMA": "你的项目名称.schema.schema",  # 比如项目叫myblog,就写"myblog.schema.schema"
}

这样配置后,GraphQL就能访问两个App里的所有Schema内容了。


内容的提问来源于stack exchange,提问作者Kimsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:12:39