问题标签 [graphene-django]
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.
django - Graphene-Django Relay 基于光标的分页不适用于动态数据
我正在使用 Graphene-Django Relay 规范获取动态数据。
当我在获取游标和数据后添加新帖子时,游标会发生变化。换句话说,指向数据确切偏移量的光标不再指向该数据。它指向一个新的、不同的数据。因此,我无法使用以下方法实现基于光标的分页:
因为游标随着数据的变化而变化,它与传统的基于偏移量的分页没有什么不同。有什么我想念的吗?我想要的光标不是改变。喜欢这篇文章:
https://www.sitepoint.com/paginating-real-time-data-cursor-based-pagination/
我应该如何使光标指向动态变化的相同数据?
django - Django Graphene Relay order_by (OrderingFilter)
我有一个带有继电器和过滤器的石墨烯接口。它工作得很好,但我想添加 order_by 选项。我的对象看起来像:
ExtendedConnection 不应该是相关的,但是:
这让我可以像foo(code_Icontains:"bar")
. 根据Graphene 文档,我应该为此在 FilterSet 中使用 OrderingFilter。我觉得这有点烦人,因为过滤器应该是自动的,但如果我这样做:
我收到一个需要提供的错误,fields
或者exclude
:
因此,如果我添加 afields = []
使其静音,它会编译。但是,当我在以下情况下使用它时:
我的常规过滤器如code_Icontains
消失。我可以在那里再次添加它们,但这很愚蠢。快速查看源代码,看起来 Relay 或 django-filters 已经创建了一个 FilterSet 类(有意义),并且以这种方式覆盖它显然是一个糟糕的主意。
如何在我的 Graphene Relay 过滤对象上添加 orderBy 过滤器?我觉得这应该很简单,但我正在努力解决这个问题。
我还看到了使用 a 以某种方式注入 order_by 的子类化示例DjangoFilterConnectionField
,connection_resolver
但这告诉我没有 orderBy 参数。
django-filter - 如何过滤石墨烯-django中为空的石墨烯标量场?
我的石墨烯突变中有一个graphene.DateTime()
字段作为参数。我可以按照文档中的描述在此字段上设置过滤器,如下所示:
这些过滤器工作得很好。但是,我希望能够过滤那些值为 的due_date
对象null
。但是,当我添加isnull
到过滤器时,我得到以下信息。
询问:
输出:
显然,即使使用isnull
过滤器,我也只能输入 type 的参数值DateTime
。在石墨烯中实现此过滤器的正确方法是什么?
python - 如何使用使用不同类型的多个字段的 graphene-django 和 Relay 创建自定义过滤器?
问题
你好,
我在 Python 3.7 中使用 Graphene Django 和 Graphene Relay。我正在尝试使用 Django 过滤器为 GraphQL 中的请求制作自定义过滤器。
我的表如下所示:
我希望能够使用 GraphQL 执行这种 SQL 请求:
使用 graphql 查询,例如:(当然日期将采用 Python DateTime 格式)
像这样也可以,只要它有效:
代码
models.py
schema.py
我已经设法在字段上添加自定义过滤器并在 GraphQL 中获取此过滤器:
但我不知道如何添加这种类型的自定义过滤器。
到目前为止,我已经看过这些文档:django_filters 文档、石墨烯文档和Django 文档关于查询集,但无法理解所有内容,也找不到符合我需要的示例:/
感谢您花时间提供帮助:)
解决方案(未优化)
我最终使用它来获得我想要的东西,但它没有优化,因为我无法获得DjangoFilterConnectionField
.
如果您有更好的解决方案,我很乐意接受,因为分页和过滤器很好!
schema.py
这使我可以执行以下请求:
请注意, DateTime 使用ISO-8601进行格式化。在 javascript 中,您可以使用以下方法获取它:
django - 带有子对象的石墨烯 Django 突变返回对象失败
当我执行一个突变(使用 SerializerMutation)并返回创建的对象时,响应包含一个 AssertionError 声明
问题出在 executor.pycomplete_list_value
中,它检查 footSet 是否是可迭代的。它实际上是一个 RelatedManager,它是不可迭代的。通常,您只需执行 table.foot_set.all() 即可获得可迭代对象。我发现它在查询中运行良好但在突变中运行良好,这很奇怪。
我创建了一个示例项目来说明这一点。
我有一个非常简单的模型,Table
有几个Foot
. 两个对象都通过 Relay 暴露出来,效果很好。查询:
返回:
但是一个突变:
产量:
要使用示例,您只需要
架构.py:
和serializers.py:
如何根据突变的要求返回我的模型及其潜在的子对象以供石墨烯处理?我做错了吗?有人有这样一个有效的例子吗?
django - 查询的 GraphQL 执行错误
我正在使用 Appolo-vue 设置我的 graphql 客户端。我在我的 http 标头中传递了我的授权令牌,但我得到了 200 ok 状态代码,但没有取回任何数据。
我正在使用 Appolo-vue 设置我的 graphql 客户端。我在我的 http 标头中传递了我的授权令牌,但我得到了 200 ok 状态代码,但没有取回任何数据。
这是我的 main.js 代码。
我在控制台中获得 200 状态 ok。但我收到查询“配置文件”的 GraphQL 执行错误
django - Graphene Django File 字段获取绝对路径
我的 Django 模型中有一个图像字段,我正在尝试从 Graphene 获取图像字段输出的绝对路径,以便连接到我的客户端。
我没有得到绝对文件字段路径。
django - 石墨烯错误消息
我想知道是否可以翻译石墨烯提供的验证错误消息?例如:“未提供身份验证凭据”,如下面的代码示例所示。
graphene-python - 未调用 get_node 方法
我get_node
在 django 对象类型定义中遇到方法问题。在我的情况下似乎没有调用该方法。
我什至尝试pdb
通过在方法内暂停执行来进行调试get_node
,但也没有用。
这是我的代码示例
和控制台输出
"POST /graphql/ HTTP/1.1" 200 26
Graphql 查询
图形输出
我相信我在执行此操作时遵循了文档。我错过了什么吗?请协助。
interface - 与石墨烯后端反应阿波罗中 graphql 接口类型的常见字段
我有一个带有接口和两种类型的 python graphene-django 后端,比方说
我可以使用内联片段从我的 react-apollo 前端查询这个:
但据我了解,也应该可以简单地查询公共字段
但是,当我尝试这个时,我得到了错误Cannot query field "id" on type "InterfaceType". Did you mean to use an inline fragment on "Type1" or "Type2"?
我正在使用一个IntrospectionFragmentMatcher
.
我是不是误解了,这种对公共字段的简单访问是不可能的,或者它只是没有在石墨烯或阿波罗中实现?