在 GraphQL 更新突变中,我希望能够传入子对象的值,但我希望这些值中的每一个都是可选的。
所以我创建了一个这样的输入类:
class CityCouncilInput(graphene.InputObjectType):
mayor = graphene.String()
treasurer = graphene.String()
Run Code Online (Sandbox Code Playgroud)
现在,我希望能够同时为市长和财务主管传递值,或者仅传递其中一个值。
Pleas 知道如果传入所有值,我的代码就可以正常工作。我只希望这些字段值是可选的。我怎么做?
罗伯特
我已经成功构建了一个允许嵌套查询的 GraphQL API。使用国家和州的通用示例,我可以执行如下查询:
query{
country(id:"Q291bnRyeTo0Nw==") {
states {
edges {
node {
id,
name,
area,
population
}
}
}
}
}Run Code Online (Sandbox Code Playgroud)
我发现我似乎无法做到的是:
query{
country(id:"Q291bnRyeTo0Nw==") {
state(id:"U3RhdGU6MzM=") {
edges {
node {
id,
name,
area,
population
}
}
}
}
}Run Code Online (Sandbox Code Playgroud)
GraphQL 是否有办法在一个查询中指定特定的父项和特定的子项?
罗伯特
更新:为了 Daniel 的利益,这是我当前的 GraphQL 查询代码:
from .models import Country as CountryModel
from .models import State as StateModel
class Query(graphene.AbstractType):
country = graphene.Field(Country, id=graphene.String())
countries = graphene.List(Country)
state = graphene.Field(State, id=graphene.String())
states = graphene.List(State)
def resolve_country(self, args, context, …Run Code Online (Sandbox Code Playgroud)我已成功使用 Graphene-Django 成功构建了多个 GraphQL 调用。在所有这些情况下,我全部或部分填充了 Django 模型,然后返回我填充的记录。
现在我遇到一种情况,我想返回一些我不想存储在 Django 模型中的数据。这可能与石墨烯有关吗?
罗伯特
我知道Python中的“ setUp”和“ setUpClass”测试治具,但是我无法找到一种方法来对整个测试套件仅实施一次设置……无论是一个测试还是一个测试类,还是所有测试类都运行。
有人知道这样做的方法吗?
罗伯特
在我的测试套件中,我有一个名为"utils.py"的文件,其中我有许多测试所需的各种功能.为了实现这一点,我创建了一个"Utils"类,并在其中包含了所有函数.
一位拥有更多Python经验的同事坚持认为不应该有这样的类,而是所有这些功能都应该是顶级的.因此,"Utils.get_feature_id()"变为"get_feature_id()".
你会赞同他的断言吗?
罗伯特
在我的 Graphene-Django 项目中,我有这样的结构:
项目级别:
schema.py
Run Code Online (Sandbox Code Playgroud)
应用级别:
schema.py
queries.py
mutations.py
Run Code Online (Sandbox Code Playgroud)
这很有效,但查询文件已经变得非常大。有没有办法将类 Query拆分为多个类和/或多个文件?
罗伯特