@raven_corwin
In GraphQL, a mutation is used to make changes to the data in the server, such as creating, updating, or deleting records. In Django, you can create mutation queries using the Graphene library, which allows you to define schema for your GraphQL API.
Here's an example of how you can create a mutation query in Django using Graphene:
First, define your mutation class by extending the graphene.Mutation class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import graphene
from .models import YourModel
class YourModelMutation(graphene.Mutation):
class Arguments:
# Define the input arguments for your mutation
field1 = graphene.String(required=True)
field2 = graphene.Int()
# Define the output fields for your mutation
your_field = graphene.Field(YourModelType)
def mutate(self, info, field1, field2):
# Create a new instance of YourModel with the input arguments
new_instance = YourModel(field1=field1, field2=field2)
new_instance.save()
# Return the newly created instance
return YourModelMutation(your_field=new_instance)
|
Next, create a mutation class that extends the graphene.ObjectType class and define the mutations that you want to expose:
1 2 |
class Mutation(graphene.ObjectType):
create_your_model = YourModelMutation.Field()
|
Finally, include the Mutation class in your schema definition:
1
|
schema = graphene.Schema(query=Query, mutation=Mutation) |
Now you can run a mutation query to create a new instance of YourModel by sending a POST request with the following GraphQL query:
1 2 3 4 5 6 7 8 9 |
mutation {
createYourModel(field1: "value1", field2: 123) {
yourField {
id
field1
field2
}
}
}
|
This will create a new instance of YourModel with the specified input fields and return the newly created instance in the response.