Settings ======== Graphene-Django can be customised using settings. This page explains each setting and their defaults. Usage ----- Add settings to your Django project by creating a Dictonary with name ``GRAPHENE`` in the project's ``settings.py``: .. code:: python GRAPHENE = { ... } ``SCHEMA`` ---------- The location of the top-level ``Schema`` class. Default: ``None`` .. code:: python GRAPHENE = { 'SCHEMA': 'path.to.schema.schema', } ``SCHEMA_OUTPUT`` ----------------- The name of the file where the GraphQL schema output will go. Default: ``schema.json`` .. code:: python GRAPHENE = { 'SCHEMA_OUTPUT': 'schema.json', } ``SCHEMA_INDENT`` ----------------- The indentation level of the schema output. Default: ``2`` .. code:: python GRAPHENE = { 'SCHEMA_INDENT': 2, } ``MIDDLEWARE`` -------------- A tuple of middleware that will be executed for each GraphQL query. See the `middleware documentation `__ for more information. Default: ``()`` .. code:: python GRAPHENE = { 'MIDDLEWARE': ( 'path.to.my.middleware.class', ), } ``RELAY_CONNECTION_ENFORCE_FIRST_OR_LAST`` ------------------------------------------ Enforces relay queries to have the ``first`` or ``last`` argument. Default: ``False`` .. code:: python GRAPHENE = { 'RELAY_CONNECTION_ENFORCE_FIRST_OR_LAST': False, } ``RELAY_CONNECTION_MAX_LIMIT`` ------------------------------ The maximum size of objects that can be requested through a relay connection. Default: ``100`` .. code:: python GRAPHENE = { 'RELAY_CONNECTION_MAX_LIMIT': 100, } ``CAMELCASE_ERRORS`` ------------------------------------ When set to ``True`` field names in the ``errors`` object will be camel case. By default they will be snake case. Default: ``False`` .. code:: python GRAPHENE = { 'CAMELCASE_ERRORS': False, } # result = schema.execute(...) print(result.errors) # [ # { # 'field': 'test_field', # 'messages': ['This field is required.'], # } # ] .. code:: python GRAPHENE = { 'CAMELCASE_ERRORS': True, } # result = schema.execute(...) print(result.errors) # [ # { # 'field': 'testField', # 'messages': ['This field is required.'], # } # ] ``DJANGO_CHOICE_FIELD_ENUM_V3_NAMING`` -------------------------------------- Set to ``True`` to use the new naming format for the auto generated Enum types from Django choice fields. The new format looks like this: ``{app_label}{object_name}{field_name}Choices`` Default: ``False`` ``DJANGO_CHOICE_FIELD_ENUM_CUSTOM_NAME`` -------------------------------------- Define the path of a function that takes the Django choice field and returns a string to completely customise the naming for the Enum type. If set to a function then the ``DJANGO_CHOICE_FIELD_ENUM_V3_NAMING`` setting is ignored. Default: ``None`` .. code:: python # myapp.utils def enum_naming(field): if isinstance(field.model, User): return f"CustomUserEnum{field.name.title()}" return f"CustomEnum{field.name.title()}" GRAPHENE = { 'DJANGO_CHOICE_FIELD_ENUM_CUSTOM_NAME': "myapp.utils.enum_naming" }