问题标签 [graphene-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4520 浏览

python - GraphQL + Django:使用原始 PostgreSQL 查询解析查询

当使用外部数据库从多个表中获取数据时(即,创建 Django 模型来表示数据不会对应于我的数据库中的单个表),将 GraphQL 与 Django 一起使用的最佳方法是什么?

我的方法是暂时放弃使用 Django 模型,因为我认为我还没有完全理解它们。(我对 Django 和 GraphQL 完全陌生。)我已经建立了一个简单的项目,其中包含一个连接了外部 Postgres DB 的应用程序。我遵循了Graphene Django 教程中的所有设置,然后当我意识到我创建的模型是几个表的组合时遇到了障碍。

我有一个查询,它发回映射到模型中字段的正确列,但我不知道如何使它成为一个动态连接,这样当我的 API 被命中时,它会查询我的数据库并将行映射到模型我在 Django 中定义的模式。

从那以后,我的方法一直是避免使用模型并使用 Steven Luscher 的演讲中演示的更简单的方法:30 分钟内从零到 GraphQL

TLDR;

目标是能够访问我的 GraphQL 端点,使用我的 django.db.connection 中的游标对象来获取应该解析为 OrderItemTypes 的 GraphQLList 的字典列表(见下文)。

问题是当我使用查询访问以下端点时,每个值都为空值:

返回:

项目/main/app/schema.py

在我的终端中,我从 QueryType 的解析方法打印,我可以看到数据成功地从我的 Postgres 连接返回。然而,GraphQL 给了我空值,所以它必须在 resolve 方法中,一些映射被搞砸了。

如何正确地将我的数据映射到我在 OrderItemType 中定义的字段?

这里还有一些参考资料:

项目/主/ schema.py

文件树

0 投票
1 回答
3437 浏览

python - Graphene/Django (GraphQL): How to use a query argument in order to exclude nodes matching a specific filter?

I have some video items in a Django/Graphene backend setup. Each video item is linked to one owner. In a React app, I would like to query via GraphQL all the videos owned by the current user on the one hand and all the videos NOT owned by the current user on the other hand.

I could run the following GraphQl query and filter on the client side:

I would rather have two queries with filters parameters directly asking relevant data to my backend. Something like:

I would query with ownerName = currentUserName and exclude = True/False yet I just cannot retrieve my exclude argument on my backend side. Here is the code I have tried in my schema.py file:

My custom SceneFilter is used but I do not know how to pass the exclude arg to it. (I do not think that I am making a proper use of the resolver). Any help on that matter would be much appreciated!

0 投票
3 回答
11595 浏览

python - graphene-django - 如何过滤?

我使用 graphen-django 构建 GraphQL API。我已成功创建此 API,但我无法传递参数以过滤我的响应。

这是我的models.py

这是我的schema.py:从 graphene_django 导入石墨烯 从模型导入 DjangoObjectType 导入应用程序

我的urls.py

如您所见,我还有一个 REST API。

我的settings.py包含以下内容:

我遵循这个:https ://github.com/graphql-python/graphene-django

当我发送此请求时:

我得到了这样的回应:

所以,它的作品!

但是当我尝试传递这样的论点时:

我有这样的回应:

我错过了什么?或者我做错了什么?

0 投票
1 回答
858 浏览

python - 石墨烯的错误。突变?

我使用 graphene-django 来获得 GrapQL API。我在我的schema.py中创建了一个突变:

当我运行此请求时,出现错误。

错误:

我在 mutate() 中放了 4 个参数,而不是 5...这是一个错误吗?

0 投票
2 回答
623 浏览

python - GraphQL 食谱示例中的 Django 过滤器错误

我目前正在通过有关石墨烯的教程学习 GraphQL,但是当我尝试运行时收到此错误消息:

错误:

在我的成分/schema.py 中:

django-filter 版本 0.15.3

我试图从官方石墨烯回购中克隆这个例子,它在 python2.7 上运行良好。但是在 python3.5 中,相同的代码无法工作。我怀疑 django-filter 发生了一些变化,导致不兼容。在 python2.7 中,django-filter 版本为 0.11.0。有谁知道如何使它在 0.15.3 中工作?

0 投票
1 回答
665 浏览

python - Graphene-django - 如何捕捉查询的响应?

我使用 django 和 django graphene 来制作 graphql API。

在我的应用程序视图中,我使用 reactJS 和react-bootstrap-table。React-bootstrap-table 期望我将对象数组传递给它,但不支持嵌套对象

我在我的schema.py中创建了查询:

这些查询的答案是 JSON 嵌套对象,如下所示:

在将它们交给 React-bootstrap-table 之前,我必须将它们放平。

有什么更好的方法,拦截 graphene-django 查询的结果以将它们平放或在 ReactJS 视图中完成这项工作?

如果第一种方法更好,如何截取graphene-django查询的结果以将它们放平?

0 投票
1 回答
4548 浏览

django - 在 GraphQL 中查询枚举值

假设我有这样的模型

当我将此模型与其 Graphene 对象类型伴侣配对时

创建一个带有名称的枚举类型OrderState!

我很关心

  1. 如何查询枚举
  2. 如何使用 Apollo 客户端管理 React 中的枚举

对于第一个问题,我有这个查询

它给了我一个奇怪的状态值,比如A_1and A_2。我期待它能给我一些有意义的价值,比如“Initiate”。如何获得 kv 对枚举的值?

对于第二个问题,如果我想向用户展示这个枚举的可能值列表,我该怎么做?

0 投票
2 回答
2814 浏览

python - 如何在 Django/Elasticsearch/MySQL 后端之上构建 GraphQL API?

我正在研究开发一个 GraphQL API。我有一个 django/elasticsearch/mysql 后端,我正在弄清楚 GraphQL 如何适合这张图片。

我阅读了有关 graphene-django 项目的信息,但它似乎与 Django ORM 紧密结合,所以我想知道 elasticsearch 是否适合这个配方。

我刚刚开始这项研究,所以即使这个问题也有可能是没有意义的。

关于如何做到这一点的任何线索?

0 投票
1 回答
572 浏览

graphql - GraphQL 和石墨烯

我有一个具有一对多关系的数据库模式。例如,一个部门有很多客户。是否有可能有一个突变来创建一个客户和一个部门并将它们关联起来?或者正确的方法是创建一个客户而不是一个部门,然后相互关联?

在第二种方法中,我需要进行三次而不是一次。有人可以为我提供处理这种情况的 GraphQL 吗?

0 投票
1 回答
1812 浏览

django - 使用graphene-django,是否可以定义两个节点之间的循环关系?

使用以下人为的示例:

如何定义和之间的循环关系RecipeNodeIngredientNode以便可以运行以下 GraphQL 查询:

就目前而言,我无法参考IngredientNodeRecipeNode因为它尚未定义。如果我尝试使用我在其他地方看到的推荐的 lambda,我会收到AttributeError: 'function' object has no attribute '_meta'.

如果我在事后尝试设置属性,我将无法ingredients从配方中查询。没有错误,Graphiql 只是表现得好像ingredients从未定义过。

我必须认为有一个我没有看到的简单解决方案。任何帮助,将不胜感激。谢谢!

Django 1.8.17,django-filter 0.15.3,graphene-django 1.2.0