Skip to main content

Create, update and delete mutations for graphene-django

Project description

Graphene Django CUD

Version Build status Documentation Status License

This package contains a number of helper mutations making it easy to construct create, update and delete mutations for django models.

The helper mutations are:

  • DjangoCreateMutation
  • DjangoPatchMutation
  • DjangoUpdateMutation
  • DjangoDeleteMutation
  • DjangoBatchCreateMutation
  • DjangoBatchPatchMutation
  • DjangoBatchUpdateMutation
  • DjangoBatchDeleteMutation
  • DjangoFilterUpdateMutation
  • DjangoFilterDeleteMutation

The package handles both regular ids and relay ids automatically.

Installation

pip install graphene_django_cud

Basic usage

To use, here illustrated by DjangoCreateMutation, simply create a new inherting class. Suppose we have the following model and Node.

class User(models.Model):
    name = models.CharField(max_length=255)
    address = models.TextField()

class UserNode(DjangoObjectType):
    class Meta:
        model = User
        interfaces = (Node,)

Then we can create a create mutation with the following schema

class CreateUserMutation(DjangoCreateMutation):
    class Meta:
        model = User


class Mutation(graphene.ObjectType):
    create_user = CreateUserMutation.Field()


class Query(graphene.ObjectType):
    user = graphene.Field(UserNode, id=graphene.String())

    def resolve_user(self, info, id):
        return User.objects.get(pk=id)


schema = Schema(query=Query, mutation=Mutation)

Note that the UserNode has to be registered as a field before the mutation is instantiated. This will be configurable in the future.

The input to the mutation is a single variable input which is automatically created with the models fields. An example mutation would then be

mutation {
    createUser(input: {name: "John Doe", address: "Downing Street 10"}){
        user{
            id
            name
            address
        } 
    }
}

Documentation

The full documentation can be found at https://graphene-django-cud.readthedocs.io/en/latest/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphene-django-cud-0.10.0.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graphene_django_cud-0.10.0-py2-none-any.whl (71.9 kB view details)

Uploaded Python 2

File details

Details for the file graphene-django-cud-0.10.0.tar.gz.

File metadata

  • Download URL: graphene-django-cud-0.10.0.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for graphene-django-cud-0.10.0.tar.gz
Algorithm Hash digest
SHA256 0ad12471c0f4dd86538c0cdf785b6d518c8ad8bc7cd6427902d3ab1fdc8946fa
MD5 2c4c70fb3c6971e93904faad1722ae69
BLAKE2b-256 871d906578f55b2319c733fa056c5f406cdb8a7b7e633fb3a55cbed3bbf9ce5e

See more details on using hashes here.

File details

Details for the file graphene_django_cud-0.10.0-py2-none-any.whl.

File metadata

  • Download URL: graphene_django_cud-0.10.0-py2-none-any.whl
  • Upload date:
  • Size: 71.9 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for graphene_django_cud-0.10.0-py2-none-any.whl
Algorithm Hash digest
SHA256 500438101635ab771211a8c6974906b3809c71151f2e8cf0dee50137fe55e914
MD5 c112bfc433c6a5cc841d2e74960eaef4
BLAKE2b-256 47ed33db3b1a0baf312d91ec1889df42335e25760b39938358581479e3bdcf28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page