title: Could not import 'art_project.schema.schema' for Graphene setting 'SCHEMA'. ImportError: cannot import name 'DjangoFilterConnectionField'
body: <p>I am using graphene.django, but i have some problems to connect to graphiql.</p>
  <p>All the files :</p>
  <p>project schema.py :</p>
  <pre><code>import graphene
  import art_app.customers.schema as customer
  
  class Query(customer.Query, graphene.ObjectType):
      pass
  
  class Mutation(customer.Mutation, graphene.ObjectType):
      pass
  
  schema = graphene.Schema(query=Query, mutation=Mutation)
  
  </code></pre>
  <p>app queries.py :</p>
  <pre><code>import graphene
  from graphene import relay, ObjectType
  from graphene_django.filter import DjangoFilterConnectionField
  from .types.nodes import CustomerUserNode
  
  class CustomerUserQuery(ObjectType):
      customer_user = relay.Node.Field(CustomerUserNode)
      all_customer_users = DjangoFilterConnectionField(CustomerUserNode)
  
  class Query(
      CustomerUserQuery, graphene.ObjectType,
  ):
      pass
  </code></pre>
  <p>app mutations;</p>
  <p>create.py:</p>
  <pre><code>import graphene
  from graphene import relay
  from ...models import CustomerUserModel
  from ..types.inputs import CustomerUserCreateInput
  from ..types.nodes import CustomerUserNode
  
  class CreateCustomerUser(relay.ClientIDMutation):
  
      class Input:
          new_customer_details = graphene.Field(CustomerUserCreateInput)
  
      created_customer_details = graphene.Field(CustomerUserNode)
  
      @classmethod
      def mutate_and_get_payload(cls, root, info, **input):
          created_customer_details = CustomerUserModel.objects.create(**input.get(&quot;new_customer_details&quot;))
          file = info.context.FILES['image']
          created_customer_details.image = file
          return CreateCustomer(created_customer_details=created_customer_details)
  
  </code></pre>
  <p>delete.py :</p>
  <pre><code>import graphene
  from graphene import relay
  from ...models import CustomerUserModel
  from ..types.inputs import CustomerUserCreateInput
  from ..types.nodes import CustomerUserNode
  from django.contrib.auth.decorators import login_required
  from django.shortcuts import get_object_or_404
  from graphql import GraphQLError
  
  
  class DeleteCustomerUser(relay.ClientIDMutation):
  
      class Input:
          id = graphene.ID(required=True)
  
      deleted_customer_details = graphene.Field(CustomerUserNode)
  
      @classmethod
      def mutate_and_get_payload(cls, root, info, id):
          deleted_customer_details = get_object_or_404(CustomerUserModel, id=id)
          if deleted_customer_details.is_active:
              deleted_customer_details.is_active = False
              deleted_customer_details.save()
          else:
              raise GraphQLError(&quot;This user is not active!&quot;)
  
          return DeleteCustomerUser(deleted_customer_details=deleted_customer_details)
  </code></pre>
  <p>nodes.py:</p>
  <pre><code>from graphene import relay
  from graphene_django import DjangoObjectType
  from ...models import CustomerUserModel
  
  class CustomerUserNode(DjangoObjectType):
      class Meta:
          model = CustomerUserModel
          filter_fields = []
          interfaces = (relay.Node, )
  
  </code></pre>
  <p>inputs.py</p>
  <pre><code>import graphene
  
  class CustomerUserCreateInput(graphene.InputObjectType):
      first_name = graphene.String(required=True)
      last_name = graphene.String(required=True)
      email = graphene.String(required=True)
      shipping_address = graphene.String()
      invoice_address = graphene.String()
      phone_number = graphene.String()
      other_notes = graphene.String()
  </code></pre>
  <p>settings.py :</p>
  <pre><code>...
  INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'corsheaders',
      'graphene_django',
      'art_app',
      'django_cleanup.apps.CleanupConfig',
      'djmoney',
  ]
  
  
  MIDDLEWARE = [
      'django.middleware.security.SecurityMiddleware',
      'django.contrib.sessions.middleware.SessionMiddleware',
      'django.middleware.common.CommonMiddleware',
      'django.middleware.csrf.CsrfViewMiddleware',
      'django.contrib.auth.middleware.AuthenticationMiddleware',
      'django.contrib.messages.middleware.MessageMiddleware',
      'django.middleware.clickjacking.XFrameOptionsMiddleware',
      'corsheaders.middleware.CorsMiddleware',
  ]
  
  GRAPHENE = {
      'SCHEMA': 'art_project.schema.schema'
  }
  
  
  STATIC_URL = '/static/'
  
  STATICFILES_DIRS = [
      os.path.join(BASE_DIR, 'static')
  ]
  
  MEDIA_URL = '/media/'
  
  MEDIA_ROOT = os.path.join(BASE_DIR, 'static')
  ...
  </code></pre>
  <p>pipfile :</p>
  <pre><code>
  [packages]
  django = &quot;*&quot;
  django-cors-headers = &quot;*&quot;
  graphene-django = &quot;*&quot;
  graphene = &quot;&gt;=2.0&quot;
  pillow = &quot;*&quot;
  django-cleanup = &quot;*&quot;
  django-filter = &quot;==2.1.0&quot;
  django-moneyfield = &quot;*&quot;
  django-money = &quot;*&quot;
  pytest = &quot;*&quot;
  
  [requires]
  python_version = &quot;3.6&quot;
  </code></pre>
  <p>I have been looking for the problems over and over but i couldn't find out.</p>
  <p>Could you please help me what the problem is?</p>