说我有,
class PersonNode(DjangoObjectType):
class Meta:
model = Person
fields = ('first_name', 'last_name', 'age',
'sex', 'alive', 'unique_identifier',)
filter_fields = ('first_name', 'last_name', 'age',
'sex', 'alive', 'unique_identifier',)
interfaces = (graphene.relay.Node,)
class PersonNodeInput(graphene.InputObjectType):
first_name = graphene.String()
last_name = graphene.String()
# rest of person model fields
class Valid(graphene.ObjectType):
ok = graphene.Boolean()
class Query(graphene.ObjectType):
validate_person = graphene.Field(Valid, args={
"data": PersonNodeInput()})
person = graphene.relay.Node.Field(PersonNode)
all_people = DjangoFilterConnectionField(PersonNode)
def resolve_validate_person(root, info, data):
print("resolve validate person")
return Valid(ok=True)
Run Code Online (Sandbox Code Playgroud)
是否可以避免写出PersonNodeInput?如果您可以对“DjangoInputObjectType”之类的内容进行子类化并在 Meta 属性中指定所需的模型和字段,那就太好了。
我们一直在使用这个Graphene Django CUD库,它试图删除一些涉及定义突变的样板文件。
将您的案例适应他们的示例看起来像
from graphene_django_cud.mutations import DjangoCreateMutation
class CreatePersonMutation(DjangoCreateMutation):
class Meta:
model = Person
class PersonMutations(graphene.ObjectType):
create_person = CreateUserMutation.Field()
schema = Schema(mutation=PersonMutations)
Run Code Online (Sandbox Code Playgroud)
我不知道它与中继节点的配合效果如何,因为我们没有使用中继。
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |