在 Graphene Django 中查询多个模型

Posted

技术标签:

【中文标题】在 Graphene Django 中查询多个模型【英文标题】:Query multiple models in Graphene Django 【发布时间】:2021-09-24 04:33:08 【问题描述】:

我在 Django 中有多个模型,名为 model1model2model3。 每个模型都有相同的字段,字段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:在模式中结合查询对象(只接受第一个参数)

Graphene Django 查询 Elasticsearch

如何重新排序 Django-Graphene 子查询?

如何使用 Graphene-Django Relay 中的外键关系更新模型?