Django GraphQL AttributeError:模块';石墨烯&x27;没有属性';英雄';

Django GraphQL AttributeError:模块';石墨烯&x27;没有属性';英雄';,django,graphql,graphiql,graphene-django,Django,Graphql,Graphiql,Graphene Django,我是Django&GraphQL的初学者,我在第一步遇到了一个问题,我无法接触到GraphiQL,我犯了一个错误 Could not import 'traindjango.schema.schema' for Graphene setting 'SCHEMA'. AttributeError: module 'graphene' has no attribute 'Heroes'. traindjango/heros/schema.py import graphene from graphe

我是Django&GraphQL的初学者,我在第一步遇到了一个问题,我无法接触到GraphiQL,我犯了一个错误

Could not import 'traindjango.schema.schema' for Graphene setting 'SCHEMA'.
AttributeError: module 'graphene' has no attribute 'Heroes'.
traindjango/heros/schema.py

import graphene
from graphene_django import DjangoObjectType

from .models import Heroes


class HeroesType(DjangoObjectType):
    class Meta:
        model = Heroes


class Query(graphene.ObjectType):
    heroes = graphene.Heroes(HeroesType)

    def resolve_links(self, info, **kwargs):
        return Heroes.objects.all()

import graphene

import heroes.schema


class Query(heroes.schema.Query, graphene.ObjectType):
    pass


schema = graphene.Schema(query=Query)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'heroes',
    'graphene_django',
]

GRAPHENE = {
    'SCHEMA' : 'traindjango.schema.schema',
}
from django.db import models

class Heroes(models.Model):
    name  = models.CharField(max_length=100, verbose_name='Name') 
    power = models.IntegerField(default=0)
    city  = models.TextField(max_length=100, verbose_name='City' ,null=True, blank=True)

traindjango/traindjango/schema.py

import graphene
from graphene_django import DjangoObjectType

from .models import Heroes


class HeroesType(DjangoObjectType):
    class Meta:
        model = Heroes


class Query(graphene.ObjectType):
    heroes = graphene.Heroes(HeroesType)

    def resolve_links(self, info, **kwargs):
        return Heroes.objects.all()

import graphene

import heroes.schema


class Query(heroes.schema.Query, graphene.ObjectType):
    pass


schema = graphene.Schema(query=Query)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'heroes',
    'graphene_django',
]

GRAPHENE = {
    'SCHEMA' : 'traindjango.schema.schema',
}
from django.db import models

class Heroes(models.Model):
    name  = models.CharField(max_length=100, verbose_name='Name') 
    power = models.IntegerField(default=0)
    city  = models.TextField(max_length=100, verbose_name='City' ,null=True, blank=True)

traindjango/traindjango/settings.py

import graphene
from graphene_django import DjangoObjectType

from .models import Heroes


class HeroesType(DjangoObjectType):
    class Meta:
        model = Heroes


class Query(graphene.ObjectType):
    heroes = graphene.Heroes(HeroesType)

    def resolve_links(self, info, **kwargs):
        return Heroes.objects.all()

import graphene

import heroes.schema


class Query(heroes.schema.Query, graphene.ObjectType):
    pass


schema = graphene.Schema(query=Query)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'heroes',
    'graphene_django',
]

GRAPHENE = {
    'SCHEMA' : 'traindjango.schema.schema',
}
from django.db import models

class Heroes(models.Model):
    name  = models.CharField(max_length=100, verbose_name='Name') 
    power = models.IntegerField(default=0)
    city  = models.TextField(max_length=100, verbose_name='City' ,null=True, blank=True)

traindjango/heros/models.py

import graphene
from graphene_django import DjangoObjectType

from .models import Heroes


class HeroesType(DjangoObjectType):
    class Meta:
        model = Heroes


class Query(graphene.ObjectType):
    heroes = graphene.Heroes(HeroesType)

    def resolve_links(self, info, **kwargs):
        return Heroes.objects.all()

import graphene

import heroes.schema


class Query(heroes.schema.Query, graphene.ObjectType):
    pass


schema = graphene.Schema(query=Query)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'heroes',
    'graphene_django',
]

GRAPHENE = {
    'SCHEMA' : 'traindjango.schema.schema',
}
from django.db import models

class Heroes(models.Model):
    name  = models.CharField(max_length=100, verbose_name='Name') 
    power = models.IntegerField(default=0)
    city  = models.TextField(max_length=100, verbose_name='City' ,null=True, blank=True)

你能帮我做点什么吗

Thanx很多

而不是

heroes = graphene.Heroes(HeroesType)
你需要

heroes = graphene.List(HeroesType)
英雄
是您的模型,不属于石墨烯

然后您需要将
resolve\u链接重命名为
resolve\u英雄

另外,好的做法是用单数命名django模块,即英雄,而不是英雄。您可以在
Meta
中设置复数的详细名称,前提是它不只是添加一个“s”