- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有继电器和过滤器的 Graphite 烯接口(interface)。它工作得很好,但我想添加 order_by 选项。我的对象看起来像:
class FooGQLType(DjangoObjectType):
class Meta:
model = Foo
exclude_fields = ('internal_id',)
interfaces = (graphene.relay.Node,)
filter_fields = {
"id": ["exact"],
"code": ["exact", "icontains"],
}
connection_class = ExtendedConnection
class Query(graphene.ObjectType):
foo = DjangoFilterConnectionField(FooGQLType)
class ExtendedConnection(graphene.Connection):
class Meta:
abstract = True
total_count = graphene.Int()
def resolve_total_count(root, info, **kwargs):
return root.length
foo(code_Icontains:"bar")
一样查询.
class FooGQLFilter(FilterSet):
class Meta:
model = Foo
order_by = OrderingFilter(
fields=(
('code', 'code'),
('lastName', 'last_name'),
('otherNames', 'other_names'),
)
)
fields
或
exclude
:
AssertionError: Setting 'Meta.model' without either 'Meta.fields' or 'Meta.exclude' has been deprecated since 0.15.0 and is now disallowed. Add an explicit 'Meta.fields' or 'Meta.exclude' to the FooGQLFilter class.
fields = []
为了让它静音,它编译。
foo = DjangoFilterConnectionField(FooGQLType, filterset_class=FooGQLFilter)
code_Icontains
消失。我可以在那里再次添加它们,但这很愚蠢。快速查看源代码,看起来 Relay 或 django-filters 已经创建了一个 FilterSet 类(有意义),并且以这种方式覆盖它显然是一个糟糕的主意。
DjangoFilterConnectionField
的示例与
connection_resolver
以某种方式注入(inject) order_by 但这告诉我没有 orderBy 参数。
最佳答案
Eric 的解决方案不适用于当前的 graphene-django 版本(2.9.1)或高于 graphene-django 2.6.0 版本。
DjangoFilterConnectionField 方法在 2.7.0 版本中有所更改。
有关更多详细信息,您可以查看更改日志 here
使用 Eric 的解决方案,它会产生错误,connection_resolver() missing 1 required positional argument: 'info’
所以我修改了解决方案,它工作得很好。
from graphene_django.filter import DjangoFilterConnectionField
from graphene.utils.str_converters import to_snake_case
class OrderedDjangoFilterConnectionField(DjangoFilterConnectionField):
@classmethod
def resolve_queryset(
cls, connection, iterable, info, args, filtering_args, filterset_class
):
qs = super(DjangoFilterConnectionField, cls).resolve_queryset(
connection, iterable, info, args
)
filter_kwargs = {k: v for k, v in args.items() if k in filtering_args}
qs = filterset_class(data=filter_kwargs, queryset=qs, request=info.context).qs
order = args.get('orderBy', None)
if order:
if type(order) is str:
snake_order = to_snake_case(order)
else:
snake_order = [to_snake_case(o) for o in order]
qs = qs.order_by(*snake_order)
return qs
关于Django Graphene Relay order_by (OrderingFilter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57478464/
当使用TypeScript时,babel-plugin-relay和relay-compiler不会解析我们的graphql调用。我们的 TS 生成的 JS 文件如下所示,针对 ES2015: var
我正在使用react-router-relay在一个项目中。考虑到每个组件基本上最终都会有一个与根查询同名的片段,所以这个设计对我来说似乎不太合适。难道每个组件不应该能够在根查询下拥有任意类型的唯一命
当我尝试实例化一个扩展Relay.Mutation的类时,我遇到了一个非常奇怪的react-relay类型错误。我使用 create-react-app my-app --scripts-versio
在 Relay 应用中处理全局应用程序状态的当前建议或最佳实践是什么?我需要管理一些严格属于客户端的状态(例如,导航面板是打开还是关闭),以及一些无法通过 GraphQL 获得的 RESTful 数据
我是 Relay 的新手,我遇到了片段上嵌套数据的问题。 当我在 graphiql 中测试时,以下查询返回正确的数据,因此我确信我的模式是正确的。 { viewer { customer
我有 2 个在主机上运行的从属 mysql 实例,它们从不同主机上的主服务器复制数据。所有实例都是 mysql 5.6。即使没有来自主实例的更改,从实例的中继 bin 日志也会不断变化。以下是 sla
我们有一个 graphql 服务器(不是用 javascript 编写的)服务于一个分页的对象列表。我们正在尝试符合中继规范,但我们遇到了一个有趣的案例,可以使用说明。 具体来说:是否允许游标依赖于连
如何在 Relay Modern 中取消订阅? 我已经按照 How to GraphQL React + Relay 上的订阅教程进行操作但它没有提及您如何取消订阅,也没有提及 Relay Moder
我开始使用 Relay 构建项目而且我[对我的项目结构有点困惑(我确实使用同构方法)。 这是我正常的 React 项目结构: -- project |-----src |
我一直在使用 react 和 relay 开发一个应用程序,现在我坚持实现身份验证。 我知道您可以通过 GraphQL 解析函数中可用的上下文将值传递给每个 graphql 请求。 我对传递什么以及如
为什么需要以及如何使用 viewer在 Relay.js 中正确吗? 我花了一周的时间来尝试理解 Relay.js。我现在对 GraphQL 很好,我也很了解它,但是我在将 GraphQL 和 Rel
我是 Relay 的新手,仍在努力解决它。根据我的理解,Relay 将查询与组件联系起来。这样,您可以说需要从 GraphQL 服务器提供组件 x、y 和 z。据我了解,官方react-relay库将
我正在考虑在我的应用程序中使用 graphql/relay 解决方案,我想知道哪些公司在生产中使用 graphql/relay(除了 facebook)。您能否在此列出使用它的公司及其案例研究。 谢谢
我的用例是,我有一个 Node 应用程序,它使用来自 CMS 的数据,并且在该 CMS 中,我让用户能够选择 React 组件作为“布局”。我希望 Relay 能够从该动态选择组件中获取 GraphQ
我在应用程序中使用 GraphQL + Relay,发现自己用 createFragmentContainer 包装了几乎所有组件,包括 DOM 层次结构中非常低的组件(通常是功能组件)。 这是使用片
{这是现代接力赛} 在我的 UserQuery.js 中, class UserQuery extends Component { render () { return (
这些天我正在尝试 React + Relay + Graphql。不幸的是,我找不到任何简单方便的方法来测试 Relay Container 包装的 React 组件。 基本上,我希望通过 TDD 实
我已经阅读了许多基于redux和relay的文章/文档,但我仍然很困惑这两个库有何不同? 这两个库的优点和缺点是什么? GraphQL 在中继中的具体作用是什么? 哪个库更适合 CRM/ERP 等企业
我不明白如何在 Graphite 烯的 ConnectionField 中使用自定义字段。我有类似的东西: class ShipConnection(Connection): extra =
我正在尝试使用 GraphQL 和 React Relay 构建一个应用程序。 作为此过程的一部分,我创建了一个具有以下规范的根查询: query { AllServices { edge
我是一名优秀的程序员,十分优秀!