Integrate GraphQL into your Django project.

Overview

Graphene Logo Graphene-Django

A Django integration for Graphene.

build pypi Anaconda-Server Badge coveralls

💬 Join the community on Slack

Documentation

Visit the documentation to get started!

Quickstart

For installing graphene, just run this command in your shell

pip install "graphene-django>=3"

Settings

INSTALLED_APPS = (
    # ...
    'django.contrib.staticfiles', # Required for GraphiQL
    'graphene_django',
)

GRAPHENE = {
    'SCHEMA': 'app.schema.schema' # Where your Graphene schema lives
}

Urls

We need to set up a GraphQL endpoint in our Django app, so we can serve the queries.

from django.urls import path
from graphene_django.views import GraphQLView

urlpatterns = [
    # ...
    path('graphql', GraphQLView.as_view(graphiql=True)),
]

Examples

Here is a simple Django model:

from django.db import models

class UserModel(models.Model):
    name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

To create a GraphQL schema for it you simply have to write the following:

from graphene_django import DjangoObjectType
import graphene

class User(DjangoObjectType):
    class Meta:
        model = UserModel

class Query(graphene.ObjectType):
    users = graphene.List(User)

    def resolve_users(self, info):
        return UserModel.objects.all()

schema = graphene.Schema(query=Query)

Then you can query the schema:

query = '''
    query {
      users {
        name,
        lastName
      }
    }
'''
result = schema.execute(query)

To learn more check out the following examples:

GraphQL testing clients

Contributing

See CONTRIBUTING.md

Release Notes

Comments
  • ☂️Graphene-Django v3

    ☂️Graphene-Django v3

    This issue is to track v3 of Graphene-Django which will contain some breaking changes.

    WIP branch: v3 (compare)

    Breaking changes

    • [x] Upgrade to Graphene v3 (which also upgrades graphql-core to v3) (PR work in progress: https://github.com/graphql-python/graphene-django/pull/905)
    • [x] Convert MultipleChoiceField to List of type String (#611)
    • [x] Start raising DeprecationWarnings for using only_fields and exclude_fields (see https://github.com/graphql-python/graphene-django/pull/691) (PR #980)
    • [x] Start warning if neither fields or exclude are defined on DjangoObjectTypes https://github.com/graphql-python/graphene-django/issues/710 (PR #981)
    • [x] Default CAMELCASE_ERRORS setting to True (PR #789)
    • [x] Rename DJANGO_CHOICE_FIELD_ENUM_V3_NAMING to DJANGO_CHOICE_FIELD_ENUM_V2_NAMING and default it to False (reference #860) (PR #982)
    • [x] Convert decimal fields correctly: https://github.com/graphql-python/graphene-django/issues/91
    opened by jkimbo 96
  • Different types with the same name in the schema - Django fields with choices

    Different types with the same name in the schema - Django fields with choices

    Hi,

    When you try to create a model with choices field and then create a second model which inherit from the previous one, you will receive error while schema generating.

    Here you have a simple project with models and basic configuration. Try to generate schema and you will get following error:

    AssertionError: Found different types with the same name in the schema: PageType, PageType.
    

    It seems that it is unable to inherit models with choices fields.

    opened by kozickikarol 47
  • Support for Django Rest Framework serializers

    Support for Django Rest Framework serializers

    Hello from PyConWeb!

    I've been working on an integration for Django Rest Framework, to allow the use of its serializers as GraphQL mutation.

    Let me know if this is something you wanted to be merged into graphene-django :)

    It's still a work in progress, but I was able to have a working Mutation from a Serializer, still haven't pushed all the code :)

    Ideally the code for the Mutation will look like this:

    class MyAwesomeMutation(SerializerMutation):
        class Meta:
            serializer_class = MyAwesomeMutation
    

    SerializerMutation will take are of the rest, defining the fields for the output, the fields for the input and the errors.

    TODO:

    • [x] converter for the fields
    • [x] converter for the serializer
    • [x] SerializerMutation base class
    • [x] Docs 📝
    • [x] Use six to support Python 2
    • [x] Add missing fields

    thanks @simobasso

    opened by patrick91 34
  • Authentication (JWT / CSRF)

    Authentication (JWT / CSRF)

    I believe authentication is one of the most common use cases,

    yet I am having a hard time finding an out-of-the-box solution for authenticating the user with a React/Vue client (which will use JWT I guess).

    Where can I find a minimal example?

    question wontfix Docs enhancement 
    opened by gotexis 33
  • Improve Security of GraphiQL

    Improve Security of GraphiQL

    This PR makes the following security improvements to GraphiQL in graphene-django.

    • Stores the GraphQL query in the URL fragment, rather than the query, so that sensitive data won't be logged to web server logs.
    • Moves JS to a separate file to enable stricter Content Security Policies.
    opened by danpalmer 33
  • Django v.4.0 and  graphene-django v.2.15.0

    Django v.4.0 and graphene-django v.2.15.0

    Note: for support questions, please use stackoverflow. This repository's issues are reserved for feature requests and bug reports.

    • What is the current behavior?

    Running Django 4.0 server fails after adding/installing graphene-django v.2.15.0 to the project. "ImportError: cannot import name 'force_text' from 'django.utils.encoding'"

    • 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 (you can use this template as a starting point: https://repl.it/@jkimbo/Graphene-Django-Example).

    • **Steps to reproduce: 1- mkvirtualenv dj4 2- pip install django 3- django-admin startproject core . 4- python manage.py runserver (Django server is up and running) 5- pip install graphene-django 6- python manage.py runserver ( ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/utils/encoding.py)

    • What is the expected behavior?

    Django server should be up and running. downgrading django to 3.2.9 will make the project works!

    • What is the motivation / use case for changing the behavior?

    • Please tell us about your environment:

      • Version: Python 3.8, Django 4.0, graphene-django v.2.15.0
      • 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)

    • **Stacktrace $ python manage.py runserver Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/usr/lib/python3.8/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 115, in inner_run autoreload.raise_last_exception() File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception raise _exception[1] File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/core/management/init.py", line 381, in execute autoreload.check_errors(django.setup)() File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/init.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate app_config = AppConfig.create(entry) File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/apps/config.py", line 223, in create import_module(entry) File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 848, in exec_module File "", line 219, in _call_with_frames_removed File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/graphene_django/init.py", line 1, in from .fields import DjangoConnectionField, DjangoListField File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/graphene_django/fields.py", line 18, in from .utils import maybe_queryset File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/graphene_django/utils/init.py", line 2, in from .utils import ( File "/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/graphene_django/utils/utils.py", line 6, in from django.utils.encoding import force_text ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/home/fake_user/.virtualenvs/dj4/lib/python3.8/site-packages/django/utils/encoding.py)

    🐛bug 
    opened by hannody 29
  • DRF Serializer update

    DRF Serializer update

    Currently you can't use serializers for updates only add operations unless you customize mutate_and_get_payload. This PR adds functionality to support most updates without any customization needed by the user. I also added support for Partial updates.

    opened by pizzapanther 28
  • Add Django form mutations

    Add Django form mutations

    This PR adds support for mutations based on Django forms. It's pretty similar to the serializer mutations over in #186. I based most of the changes off of that PR so the code should look pretty similar after being merged.

    Here's how to use them:

    class MyForm(forms.Form):
        name = forms.CharField()
    
    class MyMutation(FormMutation):
        class Meta:
            form_class = MyForm
    

    The mutation will have one argument called 'input'. That input will expect a name.

    There is also a mutation that supports ModelForms. This mutation will look up the DjangoObjectType for the forms model and return it after the form saves.

    class Pet(models.Model):
        name = models.CharField()
    
    class PetForm(forms.ModelForm):
        class Meta:
            model = Pet
            fields = ('name',)
    
    class PetMutation(ModelFormMutation):
        class Meta:
            form_class = PetForm
    

    To-Do

    • [x] Documentation
    ✨enhancement 
    opened by grantmcconnaughey 24
  • Is totalCount not implemented on Relay?

    Is totalCount not implemented on Relay?

    This gives me an error in /graphql. Rest works like a charm though.

    {
      "errors": [
        {
          "message": "Cannot query field \"totalCount\" on type \"ProductNodeConnection\".",
          "locations": [
            {
              "line": 3,
              "column": 5
            }
          ]
        }
      ]
    }
    
    query{
      allProducts(first:2 after:"YXJyYXljb25uZWN0aW9uOjM="){
        totalCount 
        pageInfo {
          hasNextPage
          hasPreviousPage
          startCursor
          endCursor
        }
      
        edges{  
          node{
            id
            name
          }
          cursor
        }
      }
    }
    
    opened by mraak 24
  • Fixes filtering in nested nodes.

    Fixes filtering in nested nodes.

    Fixes error filtering sub-nodes. The relationships were resolved but not filtered as it was notified in issues #21 and #30.

    For example:

    query{
      allCategories {
        edges {
           node {
               id,
               ingredients(name_Icontains:"beef") {
                  edges {
                     node {
                        id,
                        name
                     }
                  }
               }
            }
         }
      }
    }
    
    opened by pchinea 24
  • Django choice fields cannot be blank, even if field is not required -- graphene-django 2.1.0 / graphql-core 2.1 regression

    Django choice fields cannot be blank, even if field is not required -- graphene-django 2.1.0 / graphql-core 2.1 regression

    This seems to be a regression in the upgrade of graphql-core to 2.1 together withj graphene-django to 2.1.0.

    Prior to the upgrade, I could create an optional choice field in Django, and could query the value if the value of the choice field was blank.

    For example, assume that I have a Django model MyModel with an optional choice field my_choices_field, and a query handler that would accept a query like

    {
      myModel(id: 1) {
        id
        myChoicesField
      }
    }
    

    With the updated versions, if the value of my_choices_field is blank, this query throws a handled exception like:

     Traceback (most recent call last):
       File "/usr/local/lib/python3.7/site-packages/promise/promise.py", line 65, in try_catch
         return (handler(*args, **kwargs), None)
       File "/usr/local/lib/python3.7/site-packages/graphql/execution/executor.py", line 527, in <lambda>
         exe_context, return_type, field_asts, info, path, resolved
       File "/usr/local/lib/python3.7/site-packages/graphql/execution/executor.py", line 556, in complete_value
         return complete_leaf_value(return_type, path, result)
       File "/usr/local/lib/python3.7/site-packages/graphql/execution/executor.py", line 622, in complete_leaf_value
         path=path,
     graphql.error.base.GraphQLError: Expected a value of type "MyModelMyChoicesField" but received:
    

    And the output of the query includes errors when the value of the field is blank:

    {
      "errors": [
        {
          "message": "Expected a value of type \"MyModelMyChoicesField\" but received: ",
          "path": [
            "myModel",
            "myChoicesField"
          ]
        }
      ],
      "data": {
        "myModel": {
          "id": "1",
          "myChoicesField": null
        }
      }
    }
    
    

    I imagine the issue is related to the work in graphql-core to related to enum fields

    Improved GraphQLEnumType serialization allowing python Enum values 0cef6fb 24687b6

    opened by picturedots 22
  • Support reverse relationship for proxy models

    Support reverse relationship for proxy models

    Includes the proxy's base model when determining the reverse fields for a django model

    The potential fix for this issue https://github.com/graphql-python/graphene-django/issues/1379

    opened by TomsOverBaghdad 0
  • Proxied models dont have associated many to many relationship access

    Proxied models dont have associated many to many relationship access

    This issue is loosely related to https://github.com/graphql-python/graphene-django/issues/319 to provide further support for proxy models

    • What is the current behavior?

    Currently, django models that are a proxy of another model don't include their many to many relationships that you get by default without proxy

    So if my models.py looks like this

    # models.py
    
    from django.db import models
    
    class Publication(models.Model):
        ...
    
    class SciencePublication(Publication):
        class Meta:
            proxy = True
    
    class Article(models.Model):
        publications = models.ManyToManyField(
            Publication, 
            related_name="articles"
        )
    

    and my graphene types in types.py

    # types.py
    
    import graphene_django
    from .models import (
        Publication as PublicationModel, 
        SciencePublication as SciencePublicationModel
    )
    
    class Publication(graphene_django.DjangoObjectType):
        class Meta:
            model = PublicationModel
    
    class SciencePublication(graphene_django.DjangoObjectType):
        class Meta:
            model = SciencePublicationModel
    

    When attempting to access the articles relationship through the publication type in the graphql query I can only access it via the Publication graphql type but not through the SciencePublication type

    this is fine...

    query {
      getPublications() {
        articles {
          id
        }
      }
    }
    

    this is errors

    query {
      getSciencePublications() {
        articles { <<<< cannot query field "articles" on type "SciencePublication"
          id
        }
      }
    }
    
    • What is the expected behavior?

    many to many relationships persist with proxy models so that this query doesn't error

    query {
      getSciencePublications() {
        articles { # no errors, just smiles :)
          id
        }
      }
    }
    
    • Please tell us about your environment:

      • Version: 3.0.0b7
    🐛bug 
    opened by TomsOverBaghdad 0
  • Add Graphene Luna to Docs

    Add Graphene Luna to Docs

    Graphene Luna lets you easily add subscriptions to your Django Graphene project. It's a lot easier than the older methods and doesn't require Django Channels. I've thought about going with much stronger messaging because I believe the older projects don't work anymore. So I'm thinking they should be marked as deprecated. Let me know and I'll adjust. With Luna you can setup a subscription within a few minutes, so I also think it might want to be labeled as "recommended" if the other projects are still listed.

    opened by pizzapanther 4
  • Fix schema print with `-.graphql`

    Fix schema print with `-.graphql`

    Hi, we recently made to move to v3 and came across this problem. When printing the schema using the management command:

    ./manage.py graphql_schema --out=-.graphql
    

    It thows an error:

    AttributeError: Type "directives" not found in the Schema
    

    The issue has been addressed here with the suggested fix implemented in this PR.

    opened by bendike 0
  • use graphiql single html file with cdn

    use graphiql single html file with cdn

    GraphiQL provides a single HTML file using CDN assets and a script tag. By using this, graphene view doesn't get polluted by all those package versions and serve a single static file that was previously used only by the template, with the benefit of getting the latest version of GraphiQL.

    opened by khasbilegt 1
  • DjangoObjectType.fields ignores select_related

    DjangoObjectType.fields ignores select_related

    • What is the current behavior?

    The behavior for resolving a ForeignKey field of a DjangoObjectType is not the same when adding the field to fields versus declaring the field explicitly as an attribute of the class. In the second case, an extra query won't be made if the field has been cached by a previous select_related, but the first case always executes an additional query ignoring the select_related.

    • 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 (you can use this template as a starting point: https://repl.it/@jkimbo/Graphene-Django-Example).

    Create two Models with a foreign key between them, and a schema in which you can list all the parent models with their respective children, using a select_related call in the resolver. In the parent DjangoObjectType, try declaring the child model using both fields and an explicit attribute like child = graphene.NonNull('schema.ChildType'), and count the queries using both strategies.

    • What is the expected behavior?

    The select_related field should be honored in both cases.

    • Please tell us about your environment:

      • Version: 3.0.0
      • Platform: Python 3.10.8, graphene==3.1.1
    🐛bug 
    opened by lufte 0
Releases(v3.0.0)
  • v3.0.0(Sep 26, 2022)

    Version v3.0.0 of the library is finally here 🎉 Thanks to @jkimbo @zbyte64 @ulgens @zbyte64 for doing the the heavy-lifting and hard work and also thanks for rest of maintainers and contributes to make this happen!

    What's Changed

    • Python 3 by @ulgens in https://github.com/graphql-python/graphene-django/pull/904
    • Make tests order independent (v3) by @ganwell in https://github.com/graphql-python/graphene-django/pull/940
    • Convert MultipleChoiceField to List of type String by @kimbriancanavan in https://github.com/graphql-python/graphene-django/pull/611
    • graphql 3.0 and graphene 3.0 final rebase by @ganwell in https://github.com/graphql-python/graphene-django/pull/951
    • Rename op_name to operation_name by @jkimbo in https://github.com/graphql-python/graphene-django/pull/941
    • Do not access the internals of SimpleLazyObject by @pcraciunoiu in https://github.com/graphql-python/graphene-django/pull/945
    • fix typo by @vineethvanga18 in https://github.com/graphql-python/graphene-django/pull/959
    • Use psycopg2-binary in tox by @ulgens in https://github.com/graphql-python/graphene-django/pull/964
    • Error in signature of callproc() and execute() by @pauricthelodger in https://github.com/graphql-python/graphene-django/pull/966
    • Default camelcase errors by @jkimbo in https://github.com/graphql-python/graphene-django/pull/968
    • fixes minor typo in docs index by @chartpath in https://github.com/graphql-python/graphene-django/pull/969
    • Bump django from 3.0.3 to 3.0.7 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/978
    • Bump django from 3.0.3 to 3.0.7 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/979
    • (v3) Cast potentially translated strings used as descriptions by @DoctorJohn in https://github.com/graphql-python/graphene-django/pull/976
    • DjangoConnectionField slice: use max_limit first, if set by @pcraciunoiu in https://github.com/graphql-python/graphene-django/pull/965
    • Fix that generated schemas could contain empty descriptions (v3) by @DoctorJohn in https://github.com/graphql-python/graphene-django/pull/984
    • Start raising DeprecationWarnings for using only_fields and exclude_fields (v3) by @DoctorJohn in https://github.com/graphql-python/graphene-django/pull/980
    • Make v3 django choice field enum naming default (in v3) by @DoctorJohn in https://github.com/graphql-python/graphene-django/pull/982
    • Update setup.py classifiers by @jkimbo in https://github.com/graphql-python/graphene-django/pull/987
    • fix(converter): wrap field with NonNull if it is required by @helloqiu in https://github.com/graphql-python/graphene-django/pull/545
    • Warn if fields or exclude are not defined on DjangoObjectType by @radekwlsk in https://github.com/graphql-python/graphene-django/pull/981
    • Fix filtering with GlobalIDFilter by @hubertsiuzdak in https://github.com/graphql-python/graphene-django/pull/977
    • Fix hasNextPage - revert to count. Fix after by @pcraciunoiu in https://github.com/graphql-python/graphene-django/pull/986
    • Set first amount to max limit if not set by @jkimbo in https://github.com/graphql-python/graphene-django/pull/993
    • Move to_const function from Graphene into Graphene-Django by @jkimbo in https://github.com/graphql-python/graphene-django/pull/992
    • Move to_const function from Graphene into Graphene-Django (#992) by @ganwell in https://github.com/graphql-python/graphene-django/pull/996
    • Do not break when after is greater than list_length by @bellini666 in https://github.com/graphql-python/graphene-django/pull/999
    • Update GraphiQL, add GraphiQL subscription support by @eabruzzese in https://github.com/graphql-python/graphene-django/pull/1001
    • GraphiQL cleanup by @eabruzzese in https://github.com/graphql-python/graphene-django/pull/1002
    • Remove operation name from the regex and default to query by @jkimbo in https://github.com/graphql-python/graphene-django/pull/1004
    • Update tutorial docs by @jkimbo in https://github.com/graphql-python/graphene-django/pull/994
    • Extract query function from GraphQLTestCase making it possible to use in a pytest fixture by @nikolaik in https://github.com/graphql-python/graphene-django/pull/1015
    • Add headers support to GraphiQL by @radekwlsk in https://github.com/graphql-python/graphene-django/pull/1016
    • Fix Connection/Edge naming and add unit test by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1012
    • Add converter for django 3.1 JSONField by @nikolaik in https://github.com/graphql-python/graphene-django/pull/1017
    • Fix JSONField import by @jkimbo in https://github.com/graphql-python/graphene-django/pull/1021
    • Fix grammar by @varundey in https://github.com/graphql-python/graphene-django/pull/1027
    • Fix missing colon in function definition by @varundey in https://github.com/graphql-python/graphene-django/pull/1030
    • Add msg params to testing class by @ulgens in https://github.com/graphql-python/graphene-django/pull/1032
    • Fix testing doc by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1024
    • Update testing.rst by @donegjookim in https://github.com/graphql-python/graphene-django/pull/1026
    • Allow passing of meta object in SerializerMutation options by @jaw9c in https://github.com/graphql-python/graphene-django/pull/1028
    • Include tests and examples in source package, but don't install them by @crazyscientist in https://github.com/graphql-python/graphene-django/pull/1034
    • BUGFIX: don't filter out lookup_field as input (required for update) by @CBuiVNG in https://github.com/graphql-python/graphene-django/pull/1029
    • Restrict DjangoRestFramework version by @jkimbo in https://github.com/graphql-python/graphene-django/pull/1047
    • fix variables key in body by @robertobarreda in https://github.com/graphql-python/graphene-django/pull/1050
    • Add offset pagination by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1013
    • Improve ordering doc example by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1053
    • Section added GraphQL testing clients by @Nishchit14 in https://github.com/graphql-python/graphene-django/pull/919
    • Change build badge from travis to github actions by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1058
    • Use explicit classmethod in simple mutation example by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1059
    • Add a default msg to show the response content. by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1064
    • Register multiple choice field as list by @ulgens in https://github.com/graphql-python/graphene-django/pull/1033
    • Fix backward Relay pagination by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1046
    • Fix 1061: DjangoListField should not cache queries by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1063
    • fix issue #1068: in and range filters on DjangoFilterConnectionField by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1070
    • Replace Unidecode package with text_unidecode package by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1060
    • Fix issue #1055 by @leonardoarroyo in https://github.com/graphql-python/graphene-django/pull/1056
    • Allow to use camel case in order by field by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1054
    • Handle database transactions by @iorlandini in https://github.com/graphql-python/graphene-django/pull/1039
    • Fixed typo in documentation by @rganeyev in https://github.com/graphql-python/graphene-django/pull/1078
    • docs: fix simple typo, outputing -> outputting by @timgates42 in https://github.com/graphql-python/graphene-django/pull/1077
    • improvement: convert decimal field to graphene decimal by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1083
    • WIP: Merge master into v3 by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1086
    • Also convert BaseCSVFilter for custom fields by @bellini666 in https://github.com/graphql-python/graphene-django/pull/1081
    • Use the Django TestCase's Client by @ulgens in https://github.com/graphql-python/graphene-django/pull/1084
    • Fix project setup by @lucas-bremond in https://github.com/graphql-python/graphene-django/pull/1087
    • Fix backward compability on GraphQLTestCase._client setter by @ulgens in https://github.com/graphql-python/graphene-django/pull/1094
    • Validate in and range filter inputs by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1090
    • Add BlankField and mount enums using it v3 by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1096
    • Support "contains" and "overlap" filtering (v3) by @lucas-bremond in https://github.com/graphql-python/graphene-django/pull/1101
    • document auth pattern: return None with resolve method by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1106
    • document purpose of DjangoConnectionField by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1107
    • Fix test main by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1126
    • Remove unused imports by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1127
    • Doc clarification for headers arg in testing utils by @isundaylee in https://github.com/graphql-python/graphene-django/pull/1117
    • Fix subscriptions in JS by @ygbourhis in https://github.com/graphql-python/graphene-django/pull/1124
    • Fix schema dump on windows by @andrei-datcu in https://github.com/graphql-python/graphene-django/pull/1123
    • Add enum support to filters and fix filter typing (v3) by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1119
    • Added GraphQLTransactionTestCase by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1099
    • Fix: Allow add external resolver by @sebsasto in https://github.com/graphql-python/graphene-django/pull/1131
    • fix: declaration of required variable in filters v3 by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1137
    • enhancement: DjangoDebugContext captures exceptions by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1122
    • Fix main branch tests failing due to wrong instancing of Missing class by @sebsasto in https://github.com/graphql-python/graphene-django/pull/1135
    • Cleaned up unused imports and variables. by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1146
    • Bump django from 3.0.7 to 3.1.6 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/1149
    • Bump django from 3.0.7 to 3.1.6 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/1150
    • Tox & actions updates by @ulgens in https://github.com/graphql-python/graphene-django/pull/1143
    • Add ability to pass execution_context_class to GraphQLView.as_view() by @kubami in https://github.com/graphql-python/graphene-django/pull/1109
    • Add typed filters (v3) by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1148
    • Bump django from 3.1.6 to 3.1.8 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/1156
    • Bump django from 3.1.6 to 3.1.8 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/1157
    • Fix broken form.save() call in DjangoFormMutation.perform_mutate by @ruohola in https://github.com/graphql-python/graphene-django/pull/1155
    • update js version by @RainshawGao in https://github.com/graphql-python/graphene-django/pull/1188
    • Add missing auto fields by @pizzapanther in https://github.com/graphql-python/graphene-django/pull/1212
    • Bump django from 3.1.8 to 3.1.14 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/1282
    • Fix ingredient model by @chlammas in https://github.com/graphql-python/graphene-django/pull/1258
    • Bump django from 3.1.8 to 3.1.14 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/1283
    • Django v4, python 3.10 support for graphene-django v3 by @tim-schilling in https://github.com/graphql-python/graphene-django/pull/1281
    • Convert DecimalField to Decimal instead of Float in DRF and form converters by @jmp in https://github.com/graphql-python/graphene-django/pull/1277
    • Update requirements to the official graphene 3.0 release by @keithhackbarth in https://github.com/graphql-python/graphene-django/pull/1290
    • fixed broken links to graphene filter documentation (master->main) by @ppk42 in https://github.com/graphql-python/graphene-django/pull/1309
    • I found another wrong link in the filter dokumentation see #1309 by @ppk42 in https://github.com/graphql-python/graphene-django/pull/1311
    • Fix documentation references: op_name -> operation_name by @pifantastic in https://github.com/graphql-python/graphene-django/pull/1312
    • 👽 Use .formatted instead of format_error by @nikolaik in https://github.com/graphql-python/graphene-django/pull/1327
    • fix: backward pagination indexing error when using bigger last argument than total number of elements by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1344
    • 💥 Stop supporting EOL djangos and pythons by @nikolaik in https://github.com/graphql-python/graphene-django/pull/1337
    • chore: update dev dependencies by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1345
    • fix: backward pagination by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1346
    • fix: convert Django BigIntegerField to BigInt GraphQL type by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1318
    • feat: update name of DjangoFilterConnectionField type input to be consistent with graphene (Issue #1316) by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1317
    • minor fix on schema.py part by @ClaushIV in https://github.com/graphql-python/graphene-django/pull/1306
    • Cast translated description for DecimalField by @andrei-datcu in https://github.com/graphql-python/graphene-django/pull/1255
    • Bump version to 3.0.0b8 by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1348
    • fix: unit test for graphene pr#1412 by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1315
    • Make errors in form mutation non nullable by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1286
    • Fixes related to pr#1412 by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1352
    • Delay assignment of csrftoken in Graphiql by @c-py in https://github.com/graphql-python/graphene-django/pull/1289
    • Fix type hint for DjangoObjectTypeOptions.model by @belkka in https://github.com/graphql-python/graphene-django/pull/1269
    • Fix code examples in queries.rst by @belkka in https://github.com/graphql-python/graphene-django/pull/1265
    • Fixed graphql_relay deprecation warning by @AngelOnFira in https://github.com/graphql-python/graphene-django/pull/1313
    • Make instructions runnable without tweaking by @Gadiguibou in https://github.com/graphql-python/graphene-django/pull/1224
    • Update tutorial-relay.rst by @alarivas in https://github.com/graphql-python/graphene-django/pull/1220
    • Add support to persist GraphQL headers in GraphiQL by @devxoul in https://github.com/graphql-python/graphene-django/pull/1209
    • Bump version to v3.0.0b9 by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1353
    • Move testing endpoint to settings by @syberen in https://github.com/graphql-python/graphene-django/pull/1105
    • ☂️ v3.0.0 ☂️ by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1355

    New Contributors

    • @kimbriancanavan made their first contribution in https://github.com/graphql-python/graphene-django/pull/611
    • @pcraciunoiu made their first contribution in https://github.com/graphql-python/graphene-django/pull/945
    • @vineethvanga18 made their first contribution in https://github.com/graphql-python/graphene-django/pull/959
    • @pauricthelodger made their first contribution in https://github.com/graphql-python/graphene-django/pull/966
    • @chartpath made their first contribution in https://github.com/graphql-python/graphene-django/pull/969
    • @DoctorJohn made their first contribution in https://github.com/graphql-python/graphene-django/pull/976
    • @helloqiu made their first contribution in https://github.com/graphql-python/graphene-django/pull/545
    • @radekwlsk made their first contribution in https://github.com/graphql-python/graphene-django/pull/981
    • @hubertsiuzdak made their first contribution in https://github.com/graphql-python/graphene-django/pull/977
    • @eabruzzese made their first contribution in https://github.com/graphql-python/graphene-django/pull/1001
    • @nikolaik made their first contribution in https://github.com/graphql-python/graphene-django/pull/1015
    • @varundey made their first contribution in https://github.com/graphql-python/graphene-django/pull/1027
    • @donegjookim made their first contribution in https://github.com/graphql-python/graphene-django/pull/1026
    • @jaw9c made their first contribution in https://github.com/graphql-python/graphene-django/pull/1028
    • @crazyscientist made their first contribution in https://github.com/graphql-python/graphene-django/pull/1034
    • @CBuiVNG made their first contribution in https://github.com/graphql-python/graphene-django/pull/1029
    • @robertobarreda made their first contribution in https://github.com/graphql-python/graphene-django/pull/1050
    • @Nishchit14 made their first contribution in https://github.com/graphql-python/graphene-django/pull/919
    • @jackton1 made their first contribution in https://github.com/graphql-python/graphene-django/pull/1064
    • @leonardoarroyo made their first contribution in https://github.com/graphql-python/graphene-django/pull/1056
    • @iorlandini made their first contribution in https://github.com/graphql-python/graphene-django/pull/1039
    • @timgates42 made their first contribution in https://github.com/graphql-python/graphene-django/pull/1077
    • @isundaylee made their first contribution in https://github.com/graphql-python/graphene-django/pull/1117
    • @ygbourhis made their first contribution in https://github.com/graphql-python/graphene-django/pull/1124
    • @andrei-datcu made their first contribution in https://github.com/graphql-python/graphene-django/pull/1123
    • @sebsasto made their first contribution in https://github.com/graphql-python/graphene-django/pull/1131
    • @kubami made their first contribution in https://github.com/graphql-python/graphene-django/pull/1109
    • @ruohola made their first contribution in https://github.com/graphql-python/graphene-django/pull/1155
    • @chlammas made their first contribution in https://github.com/graphql-python/graphene-django/pull/1258
    • @tim-schilling made their first contribution in https://github.com/graphql-python/graphene-django/pull/1281
    • @jmp made their first contribution in https://github.com/graphql-python/graphene-django/pull/1277
    • @keithhackbarth made their first contribution in https://github.com/graphql-python/graphene-django/pull/1290
    • @pifantastic made their first contribution in https://github.com/graphql-python/graphene-django/pull/1312
    • @ClaushIV made their first contribution in https://github.com/graphql-python/graphene-django/pull/1306
    • @c-py made their first contribution in https://github.com/graphql-python/graphene-django/pull/1289
    • @belkka made their first contribution in https://github.com/graphql-python/graphene-django/pull/1269
    • @AngelOnFira made their first contribution in https://github.com/graphql-python/graphene-django/pull/1313
    • @Gadiguibou made their first contribution in https://github.com/graphql-python/graphene-django/pull/1224
    • @alarivas made their first contribution in https://github.com/graphql-python/graphene-django/pull/1220
    • @devxoul made their first contribution in https://github.com/graphql-python/graphene-django/pull/1209
    • @syberen made their first contribution in https://github.com/graphql-python/graphene-django/pull/1105

    Full Changelog: https://github.com/graphql-python/graphene-django/compare/v2.10.0...v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b9(Sep 25, 2022)

    What's Changed

    • fix: unit test for graphene pr#1412 by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1315
    • Make errors in form mutation non nullable by @artofhuman in https://github.com/graphql-python/graphene-django/pull/1286
    • Fixes related to pr#1412 by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1352
    • Delay assignment of csrftoken in Graphiql by @c-py in https://github.com/graphql-python/graphene-django/pull/1289
    • Fix type hint for DjangoObjectTypeOptions.model by @belkka in https://github.com/graphql-python/graphene-django/pull/1269
    • Fix code examples in queries.rst by @belkka in https://github.com/graphql-python/graphene-django/pull/1265
    • Fixed graphql_relay deprecation warning by @AngelOnFira in https://github.com/graphql-python/graphene-django/pull/1313
    • Make instructions runnable without tweaking by @Gadiguibou in https://github.com/graphql-python/graphene-django/pull/1224
    • Update tutorial-relay.rst by @alarivas in https://github.com/graphql-python/graphene-django/pull/1220
    • Add support to persist GraphQL headers in GraphiQL by @devxoul in https://github.com/graphql-python/graphene-django/pull/1209
    • Bump version to v3.0.0b9 by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1353

    New Contributors

    • @c-py made their first contribution in https://github.com/graphql-python/graphene-django/pull/1289
    • @belkka made their first contribution in https://github.com/graphql-python/graphene-django/pull/1269
    • @AngelOnFira made their first contribution in https://github.com/graphql-python/graphene-django/pull/1313
    • @Gadiguibou made their first contribution in https://github.com/graphql-python/graphene-django/pull/1224
    • @alarivas made their first contribution in https://github.com/graphql-python/graphene-django/pull/1220
    • @devxoul made their first contribution in https://github.com/graphql-python/graphene-django/pull/1209

    Full Changelog: https://github.com/graphql-python/graphene-django/compare/v3.0.0b8...v3.0.0b9

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b8(Sep 23, 2022)

    What's Changed

    • Fix project setup by @lucas-bremond in https://github.com/graphql-python/graphene-django/pull/1087
    • Fix backward compability on GraphQLTestCase._client setter by @ulgens in https://github.com/graphql-python/graphene-django/pull/1094
    • Validate in and range filter inputs by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1090
    • Add BlankField and mount enums using it v3 by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1096
    • Support "contains" and "overlap" filtering (v3) by @lucas-bremond in https://github.com/graphql-python/graphene-django/pull/1101
    • document auth pattern: return None with resolve method by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1106
    • document purpose of DjangoConnectionField by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1107
    • Fix test main by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1126
    • Remove unused imports by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1127
    • Doc clarification for headers arg in testing utils by @isundaylee in https://github.com/graphql-python/graphene-django/pull/1117
    • Fix subscriptions in JS by @ygbourhis in https://github.com/graphql-python/graphene-django/pull/1124
    • Fix schema dump on windows by @andrei-datcu in https://github.com/graphql-python/graphene-django/pull/1123
    • Add enum support to filters and fix filter typing (v3) by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1119
    • Added GraphQLTransactionTestCase by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1099
    • Fix: Allow add external resolver by @sebsasto in https://github.com/graphql-python/graphene-django/pull/1131
    • fix: declaration of required variable in filters v3 by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1137
    • enhancement: DjangoDebugContext captures exceptions by @zbyte64 in https://github.com/graphql-python/graphene-django/pull/1122
    • Fix main branch tests failing due to wrong instancing of Missing class by @sebsasto in https://github.com/graphql-python/graphene-django/pull/1135
    • Cleaned up unused imports and variables. by @jackton1 in https://github.com/graphql-python/graphene-django/pull/1146
    • Bump django from 3.0.7 to 3.1.6 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/1149
    • Bump django from 3.0.7 to 3.1.6 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/1150
    • Tox & actions updates by @ulgens in https://github.com/graphql-python/graphene-django/pull/1143
    • Add ability to pass execution_context_class to GraphQLView.as_view() by @kubami in https://github.com/graphql-python/graphene-django/pull/1109
    • Add typed filters (v3) by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1148
    • Bump django from 3.1.6 to 3.1.8 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/1156
    • Bump django from 3.1.6 to 3.1.8 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/1157
    • Fix broken form.save() call in DjangoFormMutation.perform_mutate by @ruohola in https://github.com/graphql-python/graphene-django/pull/1155
    • update js version by @RainshawGao in https://github.com/graphql-python/graphene-django/pull/1188
    • Add missing auto fields by @pizzapanther in https://github.com/graphql-python/graphene-django/pull/1212
    • Bump django from 3.1.8 to 3.1.14 in /examples/cookbook-plain by @dependabot in https://github.com/graphql-python/graphene-django/pull/1282
    • Fix ingredient model by @chlammas in https://github.com/graphql-python/graphene-django/pull/1258
    • Bump django from 3.1.8 to 3.1.14 in /examples/cookbook by @dependabot in https://github.com/graphql-python/graphene-django/pull/1283
    • Django v4, python 3.10 support for graphene-django v3 by @tim-schilling in https://github.com/graphql-python/graphene-django/pull/1281
    • Convert DecimalField to Decimal instead of Float in DRF and form converters by @jmp in https://github.com/graphql-python/graphene-django/pull/1277
    • Update requirements to the official graphene 3.0 release by @keithhackbarth in https://github.com/graphql-python/graphene-django/pull/1290
    • fixed broken links to graphene filter documentation (master->main) by @ppk42 in https://github.com/graphql-python/graphene-django/pull/1309
    • I found another wrong link in the filter dokumentation see #1309 by @ppk42 in https://github.com/graphql-python/graphene-django/pull/1311
    • Fix documentation references: op_name -> operation_name by @pifantastic in https://github.com/graphql-python/graphene-django/pull/1312
    • 👽 Use .formatted instead of format_error by @nikolaik in https://github.com/graphql-python/graphene-django/pull/1327
    • fix: backward pagination indexing error when using bigger last argument than total number of elements by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1344
    • 💥 Stop supporting EOL djangos and pythons by @nikolaik in https://github.com/graphql-python/graphene-django/pull/1337
    • chore: update dev dependencies by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1345
    • fix: backward pagination by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1346
    • fix: convert Django BigIntegerField to BigInt GraphQL type by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1318
    • feat: update name of DjangoFilterConnectionField type input to be consistent with graphene (Issue #1316) by @tcleonard in https://github.com/graphql-python/graphene-django/pull/1317
    • minor fix on schema.py part by @ClaushIV in https://github.com/graphql-python/graphene-django/pull/1306
    • Cast translated description for DecimalField by @andrei-datcu in https://github.com/graphql-python/graphene-django/pull/1255
    • Bump version to 3.0.0b8 by @firaskafri in https://github.com/graphql-python/graphene-django/pull/1348

    New Contributors

    • @isundaylee made their first contribution in https://github.com/graphql-python/graphene-django/pull/1117
    • @ygbourhis made their first contribution in https://github.com/graphql-python/graphene-django/pull/1124
    • @andrei-datcu made their first contribution in https://github.com/graphql-python/graphene-django/pull/1123
    • @sebsasto made their first contribution in https://github.com/graphql-python/graphene-django/pull/1131
    • @kubami made their first contribution in https://github.com/graphql-python/graphene-django/pull/1109
    • @ruohola made their first contribution in https://github.com/graphql-python/graphene-django/pull/1155
    • @chlammas made their first contribution in https://github.com/graphql-python/graphene-django/pull/1258
    • @tim-schilling made their first contribution in https://github.com/graphql-python/graphene-django/pull/1281
    • @jmp made their first contribution in https://github.com/graphql-python/graphene-django/pull/1277
    • @keithhackbarth made their first contribution in https://github.com/graphql-python/graphene-django/pull/1290
    • @pifantastic made their first contribution in https://github.com/graphql-python/graphene-django/pull/1312
    • @ClaushIV made their first contribution in https://github.com/graphql-python/graphene-django/pull/1306
    • @firaskafri made their first contribution in https://github.com/graphql-python/graphene-django/pull/1348

    Full Changelog: https://github.com/graphql-python/graphene-django/compare/v3.0.0b7...v3.0.0b8

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b7(Dec 31, 2020)

  • v2.15.0(Dec 31, 2020)

  • v2.14.0(Dec 23, 2020)

    New Features:

    • Handle Database Transactions (#1039)
    • Allow camel case in order by field (#1054)
    • Add offset pagination (#1013)

    Bug Fixes:

    • Fix in and range filters on DjangoFilterConnectionField (#1068)
    • Replace Unidecode with text_unidecode (#1060)
    • DjangoListField should not cache queries (#1061)
    • Fix backward relay pagination (#1046)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.13.0...v2.14.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b6(Aug 12, 2020)

  • v2.13.0(Aug 12, 2020)

    New features

    • Extract query function from GraphQLTestCase making it possible to use in a pytest fixture (#1015)
    • Add headers support to GraphiQL (#1016)
    • Add converter for Django 3.1 JSONField (#1017)

    Bugfixes

    • Fix Connection/Edge naming and add unit test (#1012)

    Huge thanks to @tcleonard, @radekwlsk and @nikolaik for helping!

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.12.1...v2.13.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b5(Aug 6, 2020)

  • v2.12.1(Jul 13, 2020)

    Changes

    • Remove operation name from the regex and default to query (#1004)

    Thank you @jkimbo for fixing subscriptions without a name.

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.12.0...v2.12.1

    Source code(tar.gz)
    Source code(zip)
  • v2.12.0(Jul 12, 2020)

    Changes

    No breaking changes

    • Update GraphiQL, add GraphiQL subscription support (#1001)
    • GraphiQL cleanup (#1002)

    Thank you @eabruzzese for adding native subscription support and documentation.

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.11.1...v2.12.0

    Source code(tar.gz)
    Source code(zip)
  • v2.11.1(Jul 9, 2020)

  • v3.0.0b4(Jun 27, 2020)

  • v2.11.0(Jun 25, 2020)

    Changes

    • Fix error in signature of callproc() and execute() in debug sql tracking (#966)
    • DjangoConnectionField slice: use max_limit first, if set (#965, #986 and #993)
    • Update setup.py classifiers (#987)
    • fix(converter): wrap field with NonNull for postgres ArrayFields (#545)
    • Fix filtering with GlobalIDFilter (#977)
    • Move to_const function from Graphene into Graphene-Django (#992)

    Huge thanks to @pcraciunoiu, @hubertsiuzdak, @ulgens, @helloqiu and @pauricthelodger for helping!

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.10.1...v2.11.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b3(Jun 11, 2020)

    Changes

    • Fix that generated schemas could contain empty descriptions (v3) (#984)
    • Start raising DeprecationWarnings for using only_fields and and exclude_fields (v3) (#980)
    • Make v3 django choice field enum naming default (v3) (#982)
    • Warn if fields or exclude are not defined on DjangoObjectType (#981)
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b2(Jun 6, 2020)

  • v2.10.1(May 18, 2020)

    Bugfixes

    • Do not access the internals of SimpleLazyObject (#945)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.10.0...v2.10.1

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b1(May 9, 2020)

    The first beta release of Graphene Django v3

    Breaking changes ‼️

    This release uses Graphene v3 which drops support for Python 2 and uses the v3 version of graphql-core. See https://github.com/graphql-python/graphene/issues/1127 for more details.

    There are also some other smaller breaking changes which will be documented in the final release notes.

    ⚠️ This is a beta release so there may be bugs and things are subject to change. Please do try it out in your projects and report back with any issues that you find.

    Source code(tar.gz)
    Source code(zip)
  • v2.10.0(May 9, 2020)

    New features

    • Disable system checks for graphql_schema management command (#939)
    • Convert nullable BooleanField to nullable Boolean field (#777)
    • Improve DjangoListField (#929)
    • Allow defining fields as an empty list (#871)

    Bugfixes

    • Switch operation_name to operationName in GraphQLTestCase (#936)
    • GraphQlView: Do not 'instantiate_middleware' if middleware is already a MiddlewareManager (#952)

    Huge thanks to @millar, @noelleleigh, @ganwell, @jckw and @msimon for helping!

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.9.1...v2.10.0

    Source code(tar.gz)
    Source code(zip)
  • v2.9.1(Apr 12, 2020)

    Bugfixes

    • Fix error with DjangoModelFormMutation (#915)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.9.0...v2.9.1

    Source code(tar.gz)
    Source code(zip)
  • v2.9.0(Mar 13, 2020)

    New features

    • Add options to override how Django Choice fields are converted to Enums (#860)
    • Detect schema export format from output file path (to support exporting .graphql files) (#868)

    Bugfixes

    • Allow string references in DjangoListField (#885)
    • Use actual root/variables/context args of the execute method (#878)
    • Include form data in DjangoFormMutation responses (#811)
    • Exclude read_only fields from input in DRF mutation (#882)
    • Fix a typo in the warning (#884)
    • Use to_representation in favor of get_attribute (#848)

    Huge thanks to @B4rtware, @fulaphex, @knabben, @protasovse, @GeyseR and @rip-the-jacker for helping!

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.8.2...v2.9.0

    Source code(tar.gz)
    Source code(zip)
  • v2.8.2(Feb 17, 2020)

    Bugfixes

    • Check exclude fields correctly (#873)
    • Adding support for disabling enum creation on SerializerMutation (#851)
    • Allow for easier template overrides in graphiql (#863)

    Huge thanks to @benhowes and @leewardbound for helping!

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.8.1...v2.8.2

    Source code(tar.gz)
    Source code(zip)
  • v2.8.1(Feb 7, 2020)

    Bugfixes

    • Raise exception early if DjangoModelFormMutation doesn't find a model type (#839)
    • Resolve django translation deprecation warnings (#847)
    • Resolve django encoding deprecation warnings (#853)
    • Fix force_str deprecation warning (#858)
    • Only warn don't throw if a field doesn't exist on the Django model (#862)

    Huge thanks to @luto and @zhelyabuzhsky for helping!

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.8.0...v2.8.1

    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Dec 31, 2019)

    Changelog

    New features

    • Add headers arg to GraphQLTestCase.query (#827)
    • Read csrftoken from DOM if no cookie is set in graphiql browser (#826)
    • Add support for partial updates when using Django Rest Framework serializers (#731)
    • Raise exceptions if fields defined in Meta.fields and Meta.exclude on DjangoObjectType don't exist (#842)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.7.1...v2.8.0

    Source code(tar.gz)
    Source code(zip)
  • v2.7.1(Nov 29, 2019)

    Changelog

    Bugfixes

    • Keep original queryset on DjangoFilterConnectionField (#816)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.7.0...v2.7.1

    Source code(tar.gz)
    Source code(zip)
  • v2.7.0(Nov 28, 2019)

    Changelog

    New features

    • Support for Django v3 (#793)

    Bugfixes

    • Fix bug with django filter lookup expressions (#805)
    • Fix multiple bugs with the DjangoConnectionField not supporting annotations (#796)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.6.0...v2.7.0

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Sep 22, 2019)

    Changelog

    Another release before v3. Fingers crossed we'll get v3 out soon!

    New features

    • Extend DjangoListField to use model queryset if none defined (#732)
    • Convert DRF ChoiceField to Enum (#537)
    • Adds variables arg to GraphQLTestCase.query (#699)

    Bugfixes

    • Handle isnull filters differently (#753)
    • Pin higher version of graphene for proper graphql-core version r… (#768)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.5.0...v2.6.0

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(Aug 10, 2019)

    Changelog

    Squeezing in another release before v3. Mostly bug fixes but also a change to the parts that are required in DjangoConnectionField and DjangoFilterConnectionField which might require a schema update.

    New features

    • Set converted Django connections to required (#610)

    Bugfixes

    • Fix choices enum: if field can be blank then it isn't required (#714)
    • Check for filters defined on base filterset classes (#730)
    • Make DjangoDebugContext wait for nested fields (#591)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.4.0...v2.5.0

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Jul 12, 2019)

    Changelog

    Some great new features and lots of bugfixes in this release. A massive thanks to all the contributors that helped out! This release will probably be the last one before v3 (see https://github.com/graphql-python/graphene-django/issues/705)

    New features

    • Add support for write_only fields in SerializerMutation (#555)
    • Enhanced support for proxy models (#603)
    • Add support for filterset_class meta parameter (#600)
    • Add watch option to graphql_schema management command (#656)
    • Add convert_choices_to_enum option on DjangoObjectType Meta class (#674)
    • Add option CAMELCASE_ERRORS to camel case field names in DRF errors (#514 and #689)
    • Mark content of ManyTo* relationships as NonNull (#690)
    • Alias only_fields as fields and exclude_fields as exclude (#691)

    Bugfixes

    • Stop enforcing csrf checks in GraphQLTestCase (#658)
    • Correctly propagate help_text as description for many-to-* relations (#579)
    • Fix Django manager check in DjangoConnectionField (which was preventing prefetch_related optimisations from working) (#693)
    • Remove duplicate ErrorType (#701)
    • Ensure correct filter types for DjangoFilterConnectionFields (#682)
    • Fix error of multiple inputs with the same type. When using same serializer. (#530)

    Full changelog: https://github.com/graphql-python/graphene-django/compare/v2.3.1...v2.4.0

    Source code(tar.gz)
    Source code(zip)
  • v2.3.2(Jun 20, 2019)

Country-specific Django helpers, to use in Django Rest Framework

django-rest-localflavor Country-specific serializers fields, to Django Rest Framework Documentation (soon) The full documentation is at https://django

Gilson Filho 19 Aug 30, 2022
Generate Views, Serializers, and Urls for your Django Rest Framework application

DRF Generators Writing APIs can be boring and repetitive work. Don't write another CRUDdy view in Django Rest Framework. With DRF Generators, one simp

Tobin Brown 332 Dec 17, 2022
Web APIs for Django. 🎸

Django REST framework Awesome web-browsable Web APIs. Full documentation for the project is available at https://www.django-rest-framework.org/. Fundi

Encode 24.7k Jan 4, 2023
Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS)

django-cors-headers A Django App that adds Cross-Origin Resource Sharing (CORS) headers to responses. This allows in-browser requests to your Django a

Adam Johnson 4.8k Jan 5, 2023
Authentication for Django Rest Framework

Dj-Rest-Auth Drop-in API endpoints for handling authentication securely in Django Rest Framework. Works especially well with SPAs (e.g React, Vue, Ang

Michael 1.1k Dec 28, 2022
Authentication Module for django rest auth

django-rest-knox Authentication Module for django rest auth Knox provides easy to use authentication for Django REST Framework The aim is to allow for

James McMahon 873 Dec 30, 2022
REST implementation of Django authentication system.

djoser REST implementation of Django authentication system. djoser library provides a set of Django Rest Framework views to handle basic actions such

Sunscrapers 2.2k Jan 1, 2023
Django queries

Djaq Djaq - pronounced “Jack” - provides an instant remote API to your Django models data with a powerful query language. No server-side code beyond t

Paul Wolf 53 Dec 12, 2022
A JSON Web Token authentication plugin for the Django REST Framework.

Simple JWT Abstract Simple JWT is a JSON Web Token authentication plugin for the Django REST Framework. For full documentation, visit django-rest-fram

Jazzband 3.3k Jan 4, 2023
Transparently use webpack with django

Looking for maintainers This repository is unmaintained as I don't have any free time to dedicate to this effort. If you or your organisation are heav

null 2.4k Dec 24, 2022
Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code.

drf-yasg - Yet another Swagger generator Generate real Swagger/OpenAPI 2.0 specifications from a Django Rest Framework API. Compatible with Django Res

Cristi Vîjdea 3k Jan 6, 2023
Creating delicious APIs for Django apps since 2010.

django-tastypie Creating delicious APIs for Django apps since 2010. Currently in beta but being used actively in production on several sites. Requirem

null 3.8k Dec 30, 2022
Django REST API with React BoilerPlate

This is a setup of Authentication and Registration Integrated with React.js inside the Django Templates for web apps

Faisal Nazik 91 Dec 30, 2022
Introduction to Django Rest Framework

Introduction to Django Rest Framework This is the repository of the video series Introduction to Django Rest Framework published on YouTube. It is a s

Simple is Better Than Complex 20 Jul 14, 2022
Scaffold django rest apis like a champion 🚀

scaffold django rest apis like a champion ??

Abdenasser Elidrissi 133 Jan 5, 2023
A minimalistic manga reader for desktop built with React and Django

smanga A minimalistic manga reader/server for serving local manga images on desktop browser. Provides a two-page view layout just as reading a physica

Padam Upreti 13 Sep 24, 2022
JSON:API support for Django REST framework

JSON:API and Django REST framework Overview JSON:API support for Django REST framework Documentation: https://django-rest-framework-json-api.readthedo

null 1k Dec 27, 2022
DRF-extensions is a collection of custom extensions for Django REST Framework

Django REST Framework extensions DRF-extensions is a collection of custom extensions for Django REST Framework Full documentation for project is avail

Gennady Chibisov 1.3k Dec 28, 2022