Note: for support questions, please use stackoverflow. This repository's issues are reserved for feature requests and bug reports.
- What is the current behavior?
You can't actually execute the example under the Parent Value Object section. There are mainly two issues. Let's have a look at the code snippet:
from graphene import ObjectType, String, Field
class Person(ObjectType):
full_name = String()
def resolve_full_name(parent, info):
return f"{parent.first_name} {parent.last_name}"
class Query(ObjectType):
me = Field(Person)
def resolve_me(parent, info):
# returns an object that represents a Person
return get_human(name="Luke Skywalker")
- From a beginner's perspective, it's unclear how the
resolve_full_name method has access to first_name and last_name when they aren't defined in the Person class.
- Seems like this
get_human function(or method?) came out of nowhere.
Then it gets executed like this:
schema = Schema(query=Query)
query_string = "{ me { fullName } }"
result = schema.execute(query_string)
assert result["data"]["me"] == {"fullName": "Luke Skywalker")
-
The last line of the above snippet has a misplaced parenthesis
-
Even if you fix that one, it raises TypeError saying TypeError: 'ExecutionResult' object is not subscriptable. result object has a to_dict method, maybe we should use that here.
-
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via
a Github repo, https://repl.it or similar.
-
What is the expected behavior?
At this stage of the documentation, the example should be self-contained, even if it gets a bit verbose.
-
What is the motivation / use case for changing the behavior?
Maybe this is the expected behavior?
from graphene import ObjectType, String, Field, Schema
class Person(ObjectType):
first_name = String()
last_name = String()
full_name = String()
def resolve_full_name(parent, info):
return f"{parent.first_name} {parent.last_name}"
def get_human(name):
first_name, last_name = name.split()
return Person(first_name=first_name, last_name=last_name)
class Query(ObjectType):
me = Field(Person)
def resolve_me(parent, info):
# returns an object that represents a Person
return get_human(name="Luke Skywalker")
schema = Schema(query=Query)
query_string = "{ me { fullName } }"
result = schema.execute(query_string)
assert result.to_dict()["data"]["me"] == {"fullName": "Luke Skywalker"}
-
Please tell us about your environment:
- Version: graphql-core==2.3.2, graphql-relay==2.0.1
- Platform: Ubuntu 20.04
-
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow)
Note: for support questions, please use stackoverflow. This repository's issues are reserved for feature requests and bug reports.
You can't actually execute the example under the Parent Value Object section. There are mainly two issues. Let's have a look at the code snippet:
resolve_full_namemethod has access tofirst_nameandlast_namewhen they aren't defined in thePersonclass.get_humanfunction(or method?) came out of nowhere.Then it gets executed like this:
The last line of the above snippet has a misplaced parenthesis
Even if you fix that one, it raises
TypeErrorsayingTypeError: 'ExecutionResult' object is not subscriptable.resultobject has ato_dictmethod, maybe we should use that here.If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via
a Github repo, https://repl.it or similar.
What is the expected behavior?
At this stage of the documentation, the example should be self-contained, even if it gets a bit verbose.
What is the motivation / use case for changing the behavior?
Maybe this is the expected behavior?
Please tell us about your environment:
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow)