在 Graphene Django 中查询多个模型
Posted
技术标签:
【中文标题】在 Graphene Django 中查询多个模型【英文标题】:Query multiple models in Graphene Django 【发布时间】:2021-09-24 04:33:08 【问题描述】:我在 Django 中有多个模型,名为 model1
、model2
、model3
。
每个模型都有相同的字段,字段id
是主键。
我想使用 GraphQL 查询这个数据库。查询结构应如下所示。
query
pod(model: "model1",id: "1")
id
data1
data2
这应该让我从模型 1 中获取 id 1 的对象。 如何在 Django 中使用 Graphene 做到这一点?
【问题讨论】:
【参考方案1】:为您的模型创建一个地图,以及您希望如何从您的 graphql 查询中访问它。这样做:
def resolve_pod(self, root, info, model, id):
model_map = 'model1': Model1, 'model2': Model2, 'model3': Model3
if model in model_map.keys():
return model_map[model].objects.get(id=1)
return None
【讨论】:
我应该如何为此设计类型类? 这取决于,此模型的字段是否都相同?如果他们有专业领域,您可以创建一个UnionType
。
这件事我已经完成了。问题是在 GraphQL 中使用 UnionType。谢谢@JechChua以上是关于在 Graphene Django 中查询多个模型的主要内容,如果未能解决你的问题,请参考以下文章
无法在 graphene_django 中获取 OneToOne 关系查询的值
graphene-django:查询所有模型字段而不是请求的字段
Graphene-Django:在模式中结合查询对象(只接受第一个参数)