使用 django-graphene 时出现错误

I get an error when using django-graphene

我正在尝试使用 graphene-django 创建一个 graphql 模式。 我正在使用 python3.5 和 graphene==1.4.1 和 graphene-django==1.3

这是我的模块:

class category(models.Model):
    QUESTION = 'Q'
    SOLUTION = 'S'
    UNKNOWN = 'U'
    CATEGORY_CHOICE = (
        ('quiz', (
            (QUESTION, 'Question'),
            (SOLUTION, 'Solution'),
        )
         ),
        (UNKNOWN, 'Unknown'),
    )
    name = models.CharField(max_length=1, choices=CATEGORY_CHOICE)
    image = models.ImageField(upload_to='uploads/category/', default='anonymous.jpg')

这是我的架构:

class Query(graphene.AbstractType):
    category = graphene.Field(categoryType, id=graphene.Int())
    def resolve_category(self, info, **kwargs):
        id = kwargs.get('id')
        if id is not None:
            return models.category.objects.get(pk=id)
        return None

和:

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


schema = graphene.Schema(query=Query)

使用此查询:

query{
  category(id: 1){
    id
  }
}

我收到这个错误:

{
  "errors": [
    {
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "message": "resolve_category() takes 2 positional arguments but 4 were given"
    }
  ],
  "data": {
    "category": null
  }
}

感谢您的帮助。 顺便说一句,我已经使用了这个教程: http://docs.graphene-python.org/projects/django/en/latest/tutorial-plain/#getting-single-objects

该文档引用了 2.0 版的石墨烯,其中删除了一些参数。 django 包的主要版本也受到影响。升级两者:

pip install "graphene>=2.0.dev"
pip install "graphene-django>=2.0.dev"